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将根据总收入和
我们将把它写进新的收藏