我目前正在使用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不太适合的关系,但我试图容纳一些可能上传的关系数据。有没有人碰巧知道这样做的方法?不一定在一个查询中,只是以任何方式。
答案 0 :(得分:1)
如TeTeT的评论中所述,您可以将$
位置更新运算符与$addToSet
结合使用来实现此目的。在shell中:
db.users.update(
{name: 'bob', 'data.name': 'mydata'},
{$addToSet: {'data.$.relations': 'add me'}})
$
标识data
数组中在查询条件中匹配的元素。