最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

查找和更新的数组中列出的许多文件

IT培训 admin 4浏览 0评论

查找和更新的数组中列出的许多文件

我试图通过寻找在阵列中与之匹配列出的所有文件,以更新我的数据库,然后更新列出的多个文档,我能够用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返回一个集合。

发布评论

评论列表 (0)

  1. 暂无评论