问题描述
db.col.insert({ name: ’kad’, tags: [’mongodb’, ’database’, ’NoSQL’],})
我现在有了新的数据’mysql’需要添加到tags对应的数组中,如何push进去呢?
db.col.update({’name’:’kad’},{$set:{’tags’:’mysql’}}) 这样不是相当于覆盖了原来的数据么
我想让结果变成 tags:[’mongodb’,’database’,’NoSQL’,’mysql’]
问题解答
回答1:请参考
db.col.update({name : 'kad'}, { $push : { tags : 'mysql'}})
另外请参考官方文档:
https://docs.mongodb.com/manu...
建议:多阅读MongoDB文档;MongoDB的文档质量很高。
回答2:使用addToSet
db.col.update({'name':'kad'},{$addToSet:{'tags':'mysql'}});
或者使用push
db.col.update({'name':'kad'},{$push:{'tags':'redis'}});
两者区别在addToSet只有在数组中不存在时候才添加,如果已经存在了不会再添加,push不管插入的值原来数组里有没有都插入,即可以插入重复的值。

