gpt4 book ai didi

node.js - Mongoose 更新有限制

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:33 26 4
gpt4 key购买 nike

我希望一次性更新 X 文档。简而言之,我基本上需要随机选择 N 个文档,然后将它们更新为 "selected"。我正在尝试设计一个需要随机分发问题的 API。我在我尝试过的 Mongoose 中找不到一种方法来做到这一点:

更新最终选择了所有内容

Question
.update({}, {
$inc: {
answerCount: 1,
lockedCount: 1
},
$push:{
devices: deviceID
}
}, {multi:true})
.limit(4)

---我也尝试过

Question
.find()
.sort({
answerCount: 1,
lockedCount: 1
})
.limit(req.query.limit || 4)
.update({}, {
$inc: {
answerCount: 1,
lockedCount: 1
},
$push:{
devices: deviceID
}
}, { multi: true }, callback);

两者都会更新所有文档。有没有办法将其推送到 Mongoose 而无需使用 map ?我没有提到的另一件事是 .update() 没有 multi 导致 1 个文档被更新。

最佳答案

您还可以提取您想要更新的 _id 数组,然后使用 $in 运行更新查询。这将需要对 mongo 进行两次调用,但更新仍然是原子的:

Question.find().select("_id").limit(4).exec(function(err, questions) {

var q = Question.update({_id: {$in: questions}}, {
$inc: {answerCount: 1, lockedCount:1},
$push: {devices: deviceid}
}, {multi:true});

q.exec(function(err) {
console.log("Done");
});
});

关于node.js - Mongoose 更新有限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375384/

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