gpt4 book ai didi

mongodb 使用 forEach 更新所有文档的 key

转载 作者:可可西里 更新时间:2023-11-01 09:26:02 24 4
gpt4 key购买 nike

我想在 Mongo 中更新我所有文档的“顺序”字段,以便它们为 1..2..3..4....34。

运行后,它们都有“order”:“34”。我做错了什么?

var i = 1;
db.images.find().forEach(function() {
db.images.update(
{},
{ "$set": {"order": NumberInt(i)} },
{ multi: true }
);
i++;
})

最佳答案

multi : true 表示匹配查询的所有文档都将被更新。您的查询是 {},它匹配所有文档。因此,基本上您是在每次迭代中更新所有文档的顺序

此外,snapshot必须在游标上启用模式以确保不会多次返回同一文档。

你可以试试这个:

var i = 1;
db.images.find().snapshot().forEach(function(image) {
db.images.update(
{"_id" : image._id},
{ "$set": {"order": NumberInt(i)} }
);
i++;
})

从性能的角度来看,最好使用批量 API。 bulkwrite

关于mongodb 使用 forEach 更新所有文档的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com