Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
$addToSet似乎只添加到数组中,是否可以将哈希添加到哈希中?
$addToSet
{ "a"=>"1", "b"=>"2", "c"=>{"d"=>"3"} }
至
{ "a"=>"1", "b"=>"2", "c"=>{"d"=>"3","e"=>"4"} }
在红宝石中将是首选。但我可以接受任何可以帮助我解决这个问题的自动取款机。
是的,$addToSet本来是要在阵列上使用的。你需要$set和点符号
$set
db.collection.update(query, {$set: {'c.e': '4'}});
您不需要$addToSet,因为散列(即 BSON 对象)只能具有任何给定键之一——它们已经设置了关于键的语义(但不是值)。
要更新 BSON 对象中的子对象,您应该$set按照 Sergio 的建议使用。