【发布时间】:2021-07-15 09:39:21
【问题描述】:
我有 2000 个文档,我想为每个文档添加一个新字段 (newUUID),并根据现有字段 (oldUUID) 设置其值。
我正在运行以下查询:
var cursor1 = db.myCollection.find();
cursor1.forEach(function(results){ db.myCollection.update({_id: results._id}, {$set: {newUUID: results.oldUUID}})})
但迭代需要很长时间
MongoDB服务器版本:3.6.0
MongoDB shell 版本 v4.4.1
【问题讨论】:
-
从 MongoDB 4.2 开始,您可以使用
updateMany()和聚合 docs.mongodb.com/manual/tutorial/… -
在 mongodb 3.6 版本中没有其他更新选项。
-
改用
bulkWrite选项 -
@Ashh 听起来不错,但是如何在没有 Mongoose 的 Mongo shell 中做到这一点?
-
@AlexL 您要么需要使用仅在 4.2+ 中可用的查询进行更新,要么需要使用您正在使用的语言编写某种代码..
标签: mongodb