4

私のmongodbドキュメントは

{
    "_id" : {
        "coid" : "testcoid",
        "cid" : "testcid"
    },
    "communications" : [
        {
            "sid" : "testsid",
            "campid" : "testcampid"
        }
    ]
}

最後に clicks フィールドを追加して複数の値を追加したい

{
        "_id" : {
            "coid" : "testcoid",
            "cid" : "testcid"
        },
        "communications" : [
            {
                "sid" : "testsid",
                "campid" : "testcampid",
                            "clicks" : {"www.google.com" , "www.facebook.com"}
            }
        ]
}

コマンドを使用しています

db.messages.update({$and : [{"_id.coid" : "testcoid"}, {"communications.sid" : "testsid"}]},{ $push : {"communications.$.clicks" : {$each : ["www.google.com" , "www.facebook.com"]}}})

代わりにこのドキュメントを提供します

db.messages.find().pretty()
{
    "_id" : {
        "coid" : "testcoid",
        "cid" : "testcid"
    },
    "communications" : [
        {
            "campid" : "testcampid",
            "clicks" : [
                     {
                    "$each" : [
                        "www.google1.com",
                        "www.google2.com"
                    ]
                      }

            ],
            "sid" : "testsid"
        }
    ]
}

注:pushAllではなくpush自体で行う必要があります。プッシュでそれを行う方法はありますか? $each オブジェクトで更新するのはなぜですか?

4

1 に答える 1

2

あなたのクエリは私のボックスで機能しましたhttp://pastebin.com/STUjCuMd

使用しているmongodbのバージョンは?

これを確認してください: https://jira.mongodb.org/browse/SERVER-830​​3

于 2013-06-26T07:40:35.913 に答える