Mongodb-更新部分文档数

Mongodb-更新部分文档数,mongodb,Mongodb,在Mongodb中是否可以限制一次更新的文档数量 我有一个按插入日期(即按_id)排序的项目列表,我只想更新(示例)5最早的一个 我可以取回我想要的通知 db.mycoll.find({}).limit(5) 我可以更新一个(并因此循环上一个查询的结果)或全部(或使用组合) 但我无法通过对更新请求有限制的标准。 有什么办法吗?不幸的是,您可以这样看: 不幸的是,你所拥有的变通方法是唯一能让你成功的方法。有一个布尔标志multi,它将更新所有匹配项(如果为true)或更新第一个匹配项(如果为fa

在Mongodb中是否可以限制一次更新的文档数量

我有一个按插入日期(即按_id)排序的项目列表,我只想更新(示例)5最早的一个

我可以取回我想要的通知

db.mycoll.find({}).limit(5)
我可以更新一个(并因此循环上一个查询的结果)或全部(或使用组合)

但我无法通过对更新请求有限制的标准。
有什么办法吗?

不幸的是,您可以这样看:

不幸的是,你所拥有的变通方法是唯一能让你成功的方法。有一个布尔标志multi,它将更新所有匹配项(如果为true)或更新第一个匹配项(如果为false)


你可以这样做

首先获取所有要更新的记录

var mycolls = db.mycoll.find({}).limit(5)
然后,映射这些记录的ID

var mycollIDs = mycolls.map(x=>x._id)
使用updateMany更新所有这些记录

db.mycolls.updateMany({_id:{$in:mycollIDs}},{set:{UPDATE DATA}})

希望这能有所帮助

谢谢你的确认,不幸的是,这也是我的印象。现在还是这样吗?
db.mycolls.updateMany({_id:{$in:mycollIDs}},{set:{UPDATE DATA}})