Den*_*lin 9 mongodb mongodb-query
我有文件喜欢
{
id : 100,
heros:[
{
nickname : "test",
spells : [
{spell_id : 61, level : 1},
{spell_id : 1, level : 2}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我不能$set
拼的level : 3
与spell_id : 1
内spells
那里面heros
有绰号"测试我尝试此查询:
db.test.update({"heros.nickname":"test", "heros.spells.spell_id":1},
{$set:{"heros.spells.$.level":3}});
Run Code Online (Sandbox Code Playgroud)
我看到的错误是
无法使用字符串字段名称附加到数组[spells]感谢您的帮助.
dcr*_*sta 11
您只能将$
位置运算符用于单级数组.在您的情况下,您有一个嵌套数组(heros
是一个数组,并且每个英雄都有一个spells
数组).
如果您知道数组的索引,则可以在执行更新时使用显式索引,例如:
> db.test.update({"heros.nickname":"test", "heros.spells.spell_id":1}, {$set:{"heros.0.spells.1.level":3}});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8945 次 |
最近记录: |