mongoose 按id更新许多记录

wljmcqd8  于 2023-06-23  发布在  Go
关注(0)|答案(2)|浏览(76)

我正在与 Mongoose 合作一个项目,我有以下问题:我需要更新许多记录的id(这些id存储在数组中)。我试过这个方法:

Collection.update({$in:{"_id":ids}}, {$set:{data_of_id}}, {upsert : true},
                 {"multi": true}, function(err, res){
                                        
                if(err){ console.log(err) };
                console.log(res);               
 });

ids[]是我需要更新的集合的id,data_of_id是将替换旧记录的新记录。但我不知道如何将这些id与数组中的每条记录关联起来。我也尝试将更新查询放入foreach方法中,但没有成功。上面的查询不返回任何错误或消息,调用的方法被执行,但不执行查询。

xienkqul

xienkqul1#

$in语法不正确,应该是:

{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }

所以,你应该这样写:

Collection.update({_id: {$in: ids}}, ...);
xjreopfe

xjreopfe2#

我用这样的方法解决了:

datas.forEach(function(data){

            Collection.update({"_id":data._id},
                data, {upsert : true},{new : true}, function(err, res){
                if(err) console.log(err);
            });

        });

相关问题