如何更新 mongodb 中的"order"字段 多个文档集合 根据请求数组?



我使用以下代码:

const update = async (item) => {
await Service.updateOne({ _id: item._id }, { order: item.order });
};
arr.forEach((item) => update(item));

我可以做同样的使用updateMany方法,只做一个请求到DB?

您可以使用bulkWrite

对于这个例子,我已经映射了一个数据数组,并为每个条目设置updateOne操作与_id过滤器和指令更新值字段与item。值值

const operations = data.map((item) => ({
updateOne: {
filter: { _id: item._id },
update: { $set: { value: item.value } }
}
}));
Service.bulkWrite(operations)

这里是文档的链接:https://www.mongodb.com/docs/manual/reference/method/db.collection.bulkWrite/

希望这对你有帮助!