我目前正在使用 Node.js MongoDB 驱动程序,并面临如下结构:
users (database)
users (collection)
{
name: bob,
data: [
{
name: mydata,
relations: [ ** I want to addToSet here! ** ]
},
{
name: mydata2,
relations: []
}
]
},
{
name: jeff,
data: [...same stuff...]
}
所以,我有一个数组,它位于一个对象内,该数组位于一个数组内,我的目标是向其中添加一个条目。
我意识到这看起来像是 MongoDB 不太适合的关系型事物,但我正在尝试容纳一些可能上传的关系型数据。有谁知道一种方法可以做到这一点吗?不一定在一个查询中,只是以任何方式。
最佳答案
正如 TeTeT 的评论中所述,您可以使用 $
来做到这一点位置更新运算符与 $addToSet
结合使用。在外壳中:
db.users.update(
{name: 'bob', 'data.name': 'mydata'},
{$addToSet: {'data.$.relations': 'add me'}})
$
标识 data
数组中与查询条件匹配的元素。
关于javascript - 如何更新数组、对象内、数组内的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518446/