1

$addToSet配列にのみ追加するようですが、ハッシュにハッシュを追加することは可能ですか?

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

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

そしてルビーではprefになります。しかし、私はこれを解決するのに役立つ何でも大丈夫です.

4

2 に答える 2

3

はい、$addToSet配列で使用することを意図していました。$setとドット表記が必要です

db.collection.update(query, {$set: {'c.e': '4'}});
于 2012-05-25T16:43:28.303 に答える
1

$addToSetハッシュ(つまりBSONオブジェクト)は任意のキーの1つしか持つことができないため、必要はありません。キーに関するセマンティクスはすでに設定されています(ただし、値ではありません)。

BSONオブジェクト内のサブオブジェクトを更新するには$set、Sergioが提案するように使用する必要があります。

于 2012-05-25T17:21:56.490 に答える