mongodb一条文档的值存的是数组,在更新的时候如何给数组push新的数据?

浏览:66日期:2023-06-19

问题描述

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不管插入的值原来数组里有没有都插入,即可以插入重复的值。

相关文章: