gpt4 book ai didi

javascript - Mongoose:如何使用回调中的变量更新文档?

转载 作者:行者123 更新时间:2023-12-03 12:38:05 27 4
gpt4 key购买 nike

我正在循环遍历 id 列表,查找与该 id 关联的条目,并且我想根据其当前值更新“分数”值。像这样:

id_array= ['2l3k4jixc','2343xjl','l243xkj33',.......];
var K=5;
for (var i=0, i<id_array.length;i++){
Model.findByIdAndUpdate(id_array[i], { $set: { value:update_variable }}, options, function(err,found_item){
update_variable= ((K-found_item.score)^3)/2;
}
})

现在它正在尝试在回调函数定义 update_variable 之前使用 $set: {score:update_variable} 。所以我认为这是行不通的。我怎样才能做到这一点?

最佳答案

目前,一般来说,MongoDB 中没有办法在任何形式的 update 语句中引用另一个字段值,因此您通常只能“查找”该项目,然后发出单独的 .save() 方法:

Model.findById(id_array[i],function(err,found) {
found.value = ((doc.score)^3)/2;
found.save();
});

根据您的目的,保存中的附加回调是可选的(建议),但这是当前基于另一个字段的值设置一个字段的唯一方法。因此,除非您循环,否则批量更新是正确的。

关于javascript - Mongoose:如何使用回调中的变量更新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644932/

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