gpt4 book ai didi

Node.js mongodb updateMany 与索引

转载 作者:可可西里 更新时间:2023-11-01 10:41:03 25 4
gpt4 key购买 nike

有什么方法可以让我在updateMany 中使用当前索引或文档编号或游标ID方法?

例如:

db.collection("users").updateMany({}, { $set: {"uname": "user_"+ $index}});

这里的 $index 表示文档的当前编号或索引或序列号。

我正在使用 MongoDB Node.JS Driver 2.2

最佳答案

updateMany 没办法执行此类操作的方法。然而,一个有效的解决方案是使用 findbulkWrite结合起来。

示例(使用函数生成器和 yield):

var coll = db.collection("users");
var Users = yield coll.find().toArray();
var bulkArray = [];
Users.forEach(function* (d, i) {
bulkArray.push({ updateOne: { filter: { _id: mongodb.ObjectID(d._id) },
update: { $set: { uname: 'user_' + i }}, upsert:true });
});
yield coll.bulkWrite(bulkArray, {ordered:true, w:1});

关于Node.js mongodb updateMany 与索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255343/

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