$addToSet
配列にのみ追加するようですが、ハッシュにハッシュを追加することは可能ですか?
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3"}
}
に
{
"a"=>"1",
"b"=>"2",
"c"=>{"d"=>"3","e"=>"4"}
}
そしてルビーではprefになります。しかし、私はこれを解決するのに役立つ何でも大丈夫です.
はい、$addToSet
配列で使用することを意図していました。$set
とドット表記が必要です
db.collection.update(query, {$set: {'c.e': '4'}});
$addToSet
ハッシュ(つまりBSONオブジェクト)は任意のキーの1つしか持つことができないため、必要はありません。キーに関するセマンティクスはすでに設定されています(ただし、値ではありません)。
BSONオブジェクト内のサブオブジェクトを更新するには$set
、Sergioが提案するように使用する必要があります。