【发布时间】:2021-08-23 07:08:45
【问题描述】:
我想知道在 mongoose 中使用 UpdateMany 更新许多文档时是否可能需要设置 ["pending", "settled"] 到一个名为 payment_settlement 的键,用于不同的文档。
为了更好地理解,我在这里添加路线:
router.post("/payment_settlement", (req, res, next) => {
var ar = ["pending", "settled"];
models.Payment.updateMany({ $set: { payment_settlement: ar[Math.floor(Math.random() * 2)] } })
.then(_ => {
return funcs.sendSuccess(res, _);
})
.catch(next);
});
对于“待处理”或“已解决”的所有文档,上述方法给了我相同的结果。 我的疑问是 MongoDB(Mongoose) 在开始时计算一次随机值,并对所有文档使用该单个随机值。
但是,我们可以在 mongoose 模式中使用 enum 来实现这一点。但我需要用随机值更新现有文档。
非常感谢任何想法或讨论。
谢谢
【问题讨论】:
-
你用的是哪个版本的mongodb?
-
MongoDB的版本是4.4.2
标签: node.js mongodb express mongoose