MongoDB在数组中设置子项

时间:2013-11-01 07:31:57

标签: mongodb

集合中的

{ _id: 123,
    category: 1,
    desc: 'desc',
    price: 99,
    item: 
     [ { two: '24',
     three: '48' },
       { two: '',
      three:''},
       { two: '33',
      three:'24'},
        ] } ,
{ _id: 121,
    category: 1,
    desc: 'desc',
    price: 99,
    item: 
     [ { two: '24',
     three: '58' },
       { two: '',
      three:''},
       { two: '35',
      three:'54'},
        ] } 

如何为所有记录设置值'two'为null,其中item.two = '24'

1 个答案:

答案 0 :(得分:3)

使用位置运算符$更新与搜索查询匹配的items数组中的文档:

update({ "item.two" : "24" }, 
       { $set : { "item.$.two" : "" }}, false, true);

如果要从数组文档中删除此字段,请使用$unset运算符:

update({ "item.two" : "25" }, 
       { $unset : { "item.$.two" : "" }}, false, true);