我的目标是按照“page_length”降序的顺序将集合1中的每个项目复制到集合2,这样新集合首先具有最大的page_length字段,第二个是第二大字段,依此类推。
我在Mongo中尝试了以下内容:
db.mycollection1.find().sort({page_length:-1}).foreach(function(d) { db.mycollection2.insert({"field1":d.field1, "field2":d.field2}); })
有一个错误,DBQuery没有方法'foreach'。我知道foreach()是find()的函数,但我希望找到一个解决方法。我甚至尝试了以下方法:
db.mycollection1.aggregate({$sort:{page_length:-1}}).foreach(function(d) { db.mycollection2.insert({"field1":d.field1, "field2":d.field2}); })
有什么想法吗?
答案 0 :(得分:2)
看起来你的第一个例子是正确的,只是你有foreach
而不是forEach
。它需要大写E
。
http://docs.mongodb.org/manual/reference/method/cursor.forEach/
答案 1 :(得分:1)
尝试:
db.mycollection1.find().sort().forEach(function(e) { ... })
答案 2 :(得分:1)
您需要先在这里排序我已根据客户的姓氏进行排序,请尝试以下查询
db.customers.find()。sort({lastname:1})。forEach(function(doc){print(“Customer name:”+ doc.lastname)});