1
$addToSet
似乎只添加到數組,是否有可能添加散列到散列?
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3"}
}
到
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3","e"=>"4"}
}
而且在紅寶石會優先。但是我可以用任何atm來幫助我解決這個問題。
$addToSet
似乎只添加到數組,是否有可能添加散列到散列?
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3"}
}
到
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3","e"=>"4"}
}
而且在紅寶石會優先。但是我可以用任何atm來幫助我解決這個問題。
是的,$addToSet
是爲了在陣列上使用。你需要$set
和點符號
db.collection.update(query, {$set: {'c.e': '4'}});
你不需要$addToSet
,因爲哈希(即BSON對象)只能有任何給定的重點之一 - 他們已經有關於鍵(未設置值語義,然而)。
要更新BSON對象中的子對象,應該按照Sergio的建議使用$set
。