【发布时间】:2016-11-25 22:13:06
【问题描述】:
我有大约 40000 条记录,我需要更新 planId 字段并将记录复制到同一个集合中。 现在我正在使用基本的
linkModel.find({},callback) & linkModel.insertMany([linksArray],callback)
但这会占用很多时间。
我已经尝试过聚合,但 $out 运算符替换了现有集合,而我想更新它而不是替换。
到目前为止我尝试过的三个步骤:
db.links.aggregate([ { $match: { planId: ObjectId("5732f50a6886e5421259e823") } }, { $out: "temp" } ]);
db.temp.updateMany({planId:ObjectId("5732f50a6886e5421259e823")},{$set:{planId:ObjectId("5791b25f203b5e92316e60c3")}})
db.temp.copyTo("links"),
但即使是 copyTo 方法也很慢。 有更快的方法吗?
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query aggregation-framework