Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 在结果之后插入许多文档_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 在结果之后插入许多文档

Mongodb 在结果之后插入许多文档,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有以下代码来查询集合并获得一些结果 var subquery = {"shipdate" : { "$gte" : 19960101, "$lt" : 19960401 } }; var eachsupp = db.lineitems.aggregate([ { $match : subquery }, { $project : { "_id" : 0, "revenue" : {$multiply : ["$extend

我有以下代码来查询集合并获得一些结果

var subquery = {"shipdate" : { 
    "$gte" : 19960101, 
    "$lt" : 19960401 } 
};

var eachsupp = db.lineitems.aggregate([
    { $match : subquery },
    { $project : {
        "_id" : 0,
        "revenue" : {$multiply : ["$extendedprice", {$subtract : [1, "$discount"] }] },
        "supplier_no" : "$partsupp.supplier.suppkey",
        "name" : "$partsupp.supplier.name",
        "address" : "$partsupp.supplier.address",
        "phone" : "$partsupp.supplier.phone" }},
    { $group : {
        _id : "$supplier_no",
        total_revenue : { $sum : "$revenue" },
        name : {$first : "$name"},
        address : {$first : "$address"},
        phone : {$first : "$phone"} }}
]);
之后我得到了这个结果:

{ "_id" : 5, "total_revenue" : 39995.208, "name" : "Supplier#000000005", "address" : "Gcdm2rJRzl5qlTVzc", "phone" : "21-151-690-3663" }
{ "_id" : 138, "total_revenue" : 37736.3465, "name" : "Supplier#000000138", "address" : "utbplAm g7RmxVfYoNdhcrQGWuzRqPe0qHSwbKw", "phone" : "29-533-434-6776" }
更像这样。我想将其插入tmp集合中。像这样:

db.tmp.insert(eachsupp.result);

db.tmp.find().sort({total_revenue : -1}).limit(1);
但我有一个错误,因为它无法插入

db.tmp.insert(eachsupp.result);
2016-04-17T23:12:20.683+0100 E QUERY    [thread1] Error: no object passed to ins
ert! : DBCollection.prototype.insert@src/mongo/shell/collection.js:226:1
@(shell):1:1

我认为replace
db.tmp.insert(eachsupp.result)

使用此
eachsupp.forEach(函数(文档){db.tmp.insert(文档)})

eachsupp.result
是抛出异常


eachsupp
是游标,使用循环迭代游标并插入每个游标

将其添加到聚合中

{ $sort: { total_revenue: -1 } },
{$out: "eachsupp"}
Sort将根据总收入和 我们将把它写进新的收藏