mongodb中没有更新多个数组元素

时间:2018-06-05 11:36:55

标签: mongodb mongoose

我正在尝试更新多个数组元素。我的数据如下:

{ 
    "_id" : ObjectId("5b1623343aeefb2a8973e26a"), 
    "userId" : ObjectId("5acf0e0e6d57ed7a22d16739"),      
    "previous" : [
        {
            "providerId" : ObjectId("5acf304b995ea23a707b58e5"),                 
            "_id" : ObjectId("5b1623343aeefb2a8973e286"), 
            "isBlocked" : true, 
        }, 
        {
            "providerId" : ObjectId("5acf304b995ea23a707b58e5"),                 
            "_id" : ObjectId("5b1623343aeefb2a8973e285"), 
            "isBlocked" : true,                
        }, 
        {
            "providerId" : ObjectId("5acf304b995ea23a707b58e5"),                
            "_id" : ObjectId("5b1623343aeefb2a8973e284"), 
            "isBlocked" : true, 
        }, 

我需要将isBlocked Status更新为false,其中providerId是相同的 我已经按照以下帖子中的@Neil给出了步骤:

How to Update Multiple Array Elements in mongodb

我在这里分享我的疑问:

db.getCollection("collectionName").update(
{"userId" : ObjectId("5acf0e0e6d57ed7a22d16739")},
{$set:{"previous.$[elem].isBlocked":false}},
{
  arrayFilters:[{"elem.providerId":ObjectId("5acf304b995ea23a707b58e5")}]
}
)

如果我正在运行此查询mongo shell,那么它工作正常但它在我的代码中不起作用。

我使用的是MongoDB version 3.6,而我的猫鼬版本是mongoose@4.13.9

0 个答案:

没有答案