更新mongodb上的子文档时出现问题

alg*_*der 2 mongodb nosql

说我有一个集合allitems,每个文件都是表格

{_id: "1", items: [{number: 1, main: "how are you?", sub:[{id:1, item: "does it change with the day?", score: 0},{id:2, item:"some other question", score: 0}]}]}
Run Code Online (Sandbox Code Playgroud)

如何更新子项目的分数?

我试过了

 db.allitems.update({_id:"1"}, {$set:{'items.0.sub.0.score': 5}});
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

error: {
    "$err" : "Unsupported projection option: items.0.sub.0.score",
    "code" : 13097
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Joh*_*yHK 6

您需要使用$set代替set和引用使用点表示法的键.

db.allitems.update({_id:"1"}, {$set: {'items.0.sub.0.score': 5}})
Run Code Online (Sandbox Code Playgroud)

  • 没关系....我曾经有过最愚蠢的错误....我正在使用"查找"而不是"更新".....> =我生命中的2个小时可能会或可能不会浪费掉:)谢谢你你的帮助! (17认同)