【发布时间】:2014-01-05 22:34:12
【问题描述】:
我试图根据文档中的英雄名称更改强度,如下所示:
"_id" : ObjectId("52b0d27b5dee463864000001"),
"author" : "niko",
"permalink" : "super_heroes"
"hero" : [
{
"name" : "Batman",
"strength" : 1,
"magic" : [ ],
"times" : [ ]
},
最初尝试时无法更改:
var operator = { '$set' : { 'hero.strength' : strength } };
var query = { 'permalink': permalink , 'hero.name':name };
posts.update(query, operator, options, function(err, numModified) {...})
我收到了MongoError: can't append to array using string field name: strength。
但是在看到this post 之后,我添加了一个美元符号并且它起作用了:
var operator = { '$set' : { 'hero.$.strength' : strength } };
JSON 密钥中的美元符号有什么作用?我试着用谷歌搜索它,但我只是想出了一百万个关于 jQuery 是什么的解释。谢谢你。
【问题讨论】:
标签: javascript json mongodb