删除数组中符合条件的元素

  1. 初始
    {
     "_id" : 1.0,
     "arr" : [ 
         {
             "a": 2,
             "b": 5,
             "c": 8
         },
         {
             "a": 6,
             "b": 7,
             "c": 8
         }
     ]
    }
    
    删除数组arr中的a>=5的项
    db.getCollection('user').update(
     {"_id": 1.0},
     {$pull: {"arr": {"a": {$gte: 5}}}}
    )
    
    结果
    {
     "_id" : 1.0,
     "arr" : [ 
         {
             "a" : 2,
             "b" : 5,
             "c" : 8
         }
     ]
    }
    
  2. 使用$elemMatch匹配多个条件
    {
     "_id" : 1.0,
     "arr" : [ 
         {
             "c" : [ 
                 {
                     "a" : 10,
                     "b" : 10
                 }, 
                 {
                     "a" : 15,
                     "b" : 15
                 }
             ]
         }, 
         {
             "c" : [ 
                 {
                     "a" : 20,
                     "b" : 20
                 }, 
                 {
                     "a" : 25,
                     "b" : 25
                 }
             ]
         }
     ]
    }
    

    删除arr数组 中的c数组中 (a=25 && b=25)

    db.getCollection('user').update(
     {"_id": 1.0},
     {$pull: {"arr": {"c": {$elemMatch: {"a": 25,"b":25}}}}}
    )
    
结果
{
    "_id" : 1.0,
    "arr" : [ 
        {
            "c" : [ 
                {
                    "a" : 10,
                    "b" : 10
                }, 
                {
                    "a" : 15,
                    "b" : 15
                }
            ]
        }
    ]
}

results matching ""

    No results matching ""