我试图获取,操纵和保存mongoose文档,但得到错误的结果 . 请参阅下面的代码段:
x = [{id:"abc", value:10, name:"andy"}, {id:"abc", value:20, name:"mark"}];
x.forEach(function(x){
var amount = x.value;
y.findOne({id:x.id}).populate("name").exec(function(err, y){
y.value += amount;
y.save();
});
});
每次我循环 forEach
并尝试修改 y.value
,我得到一个错误的结果 .
Expected:
loop 1: y.value = 10;
loop 2: y.value = 30;
What I get:
loop 1: y.value = 10;
loop 2: y.value = 20;
如果有人能帮助我,我将不胜感激 .
1 回答
没有
在对象x中 . 只是
和
有效检索 . 所以你的查询需要改变 .
通常在MongoDB中,您只需使用内部_id属性来标识对象 . 你必须小心正常的foreach循环和异步操作 . 你最好使用像这样的库
或async / await