mongodb 不重复添加数组方法

同学们在使用MONGODB时,会不会有这样的需求。比如自己喜欢的书保存在数据库中可能是一个数组行式。

1
2
3
4
{
   user: 'boy' ,
   books:[ '华严经' , '三字经' , '圣经' ]
}

假如说boy这个用户,需要读经书,现在他还需要读一本书叫’心经’,可是保存的时候需要检查他喜欢的书中有没有心经,如果没有就添加,有就忽略。这个当然如果程序来查询再添加肯定是不科学的。

mongodb新版本中(2.3)有一个’$addToSet’这个方法向数组中增加值。

1
db.book.update({ 'user' : 'body' }, { '$addToSet' :{books: '心经' }});

这样即使是执行两次以上代码也不会重复添加了。(相比直接用push方式)

那么有的小伙伴就会有问了,如果我想同时添加多个值到数组中,又当如何呢?‘跑客教授’就在这里面告诉大家了

使用’$addToSet’,'$each’的组合方式.

1
2
db.book.update({ 'user' : 'body' }, { '$addToSet' :{books:{ '$each' :[ '心经' , '楞严经' , '阿弥陀佛经' , '金刚经' ]}});
//如此添加可能而知这个小伙伴是个信佛之人哈。

除声明外, 跑步客 文章均为原创,转载请以链接形式标明本文地址

本文地址:   http://www.paobuke.com/develop/pbk1464.html

你可能感兴趣的:(mongodb 不重复添加数组方法)