$ addToSet for hashes?

时间:2012-05-25 16:41:35

标签: ruby mongodb

$addToSet似乎只添加到数组,是否可以向哈希添加哈希?

{
    "a"=>"1",
    "b"=>"2",
    "c"=>{"d"=>"3"}
}

{
    "a"=>"1",
    "b"=>"2",
    "c"=>{"d"=>"3","e"=>"4"}
}

在红宝石中会有优先权。但我对任何事情都没关系,我会帮助我解决这个问题。

2 个答案:

答案 0 :(得分:3)

是的,$addToSet意在用于数组。您需要$set和点符号

db.collection.update(query, {$set: {'c.e': '4'}});

答案 1 :(得分:1)

您不需要$addToSet,因为哈希(即BSON对象)只能拥有任何给定键中的一个 - 它们已经设置了关于键的语义(但不是值)。

要更新BSON对象中的子对象,您应该像Sergio建议的那样使用$set