$addToSet
似乎只添加到数组,是否可以向哈希添加哈希?
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3"}
}
到
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3","e"=>"4"}
}
在红宝石中会有优先权。但我对任何事情都没关系,我会帮助我解决这个问题。
答案 0 :(得分:3)
是的,$addToSet
意在用于数组。您需要$set
和点符号
db.collection.update(query, {$set: {'c.e': '4'}});
答案 1 :(得分:1)
您不需要$addToSet
,因为哈希(即BSON对象)只能拥有任何给定键中的一个 - 它们已经设置了关于键的语义(但不是值)。
要更新BSON对象中的子对象,您应该像Sergio建议的那样使用$set
。