1

私はmongodbにネストされた配列を持つ単純な構造を持っています。検索値を更新するにはどうすればよいですか?次のような数字を使用した例を見てきました。

invited.0.used: true

しかし、これは私が探しているものではありません。リストのどこにこの要素があるのか​​わからないので、キーが84026702であるtrueに使用される配列を更新するにはどうすればよいですか?キーが43938432である場所を更新する方法を招待された100個のアレイがある場合はどうなりますか?

{
    "_id" : ObjectId("4fed972f61d69aa004000000"),
    "name" : "mezo",
    "invited" : [
            {
                    "key" : 40928710,
                    "used" : false
            },
            {
                    "key" : 84026702,
                    "used" : false
            }
    ]
}
4

1 に答える 1

6
update({ invited.key : 84026702 }, { invited.$.used : true });

これは基本的にあなたが望むことを行い、うまく機能するはずです。mongodbの位置演算子を調べます:http ://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

または、PHPで(質問にタグが付けられているため)、次のことができます。

$mongo->collection->update(array('invited.key' => 84026702), array('invited.$.used' => true));
于 2012-06-29T12:15:53.340 に答える