查找和更新的数组中列出的许多文件
我试图通过寻找在阵列中与之匹配列出的所有文件,以更新我的数据库,然后更新列出的多个文档,我能够用findOne()
更新单个文件,但是当我用find()
寻找的所有文件阵列中的匹配..它不会更新。这方面的任何解决方案?
示例文件:
_id:5c5ef16221a4961b68e64d98
serial_code:"one"
status:"available"
_id:5c5ef17541a4961b68e64d98
serial_code:"two"
status:"available"
我的代码:
Bloodstock.find({ serial_code : { $in : ['one','two','three'] } }, function(bloodstock) {
bloodstock.status = 'not available';
bloodstock.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
});
给我的错误:
回答如下:
TypeError: bloodstock.save is not a function
猫鼬的回调通常需要两个参数,第一个代表和错误,看看here。因此,你的代码可能看起来象下面这样:
Bloodstock.find({ serial_code : { $in : ['one','two','three'] } }, function(error, bloodstockDocs) {
if(error) return;
for(let bloodstock of bloodstockDocs) {
bloodstock.status = 'not available';
bloodstock.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
}
});
编辑:所以你需要使用find
遍历这些文件迭代for
返回一个集合。
查找和更新的数组中列出的许多文件
我试图通过寻找在阵列中与之匹配列出的所有文件,以更新我的数据库,然后更新列出的多个文档,我能够用findOne()
更新单个文件,但是当我用find()
寻找的所有文件阵列中的匹配..它不会更新。这方面的任何解决方案?
示例文件:
_id:5c5ef16221a4961b68e64d98
serial_code:"one"
status:"available"
_id:5c5ef17541a4961b68e64d98
serial_code:"two"
status:"available"
我的代码:
Bloodstock.find({ serial_code : { $in : ['one','two','three'] } }, function(bloodstock) {
bloodstock.status = 'not available';
bloodstock.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
});
给我的错误:
回答如下:
TypeError: bloodstock.save is not a function
猫鼬的回调通常需要两个参数,第一个代表和错误,看看here。因此,你的代码可能看起来象下面这样:
Bloodstock.find({ serial_code : { $in : ['one','two','three'] } }, function(error, bloodstockDocs) {
if(error) return;
for(let bloodstock of bloodstockDocs) {
bloodstock.status = 'not available';
bloodstock.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
}
});
编辑:所以你需要使用find
遍历这些文件迭代for
返回一个集合。