2013-06-26 45 views
4

我的MongoDB的文檔

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

我想最後加點擊字段並添加多個值

{ 
     "_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" 
     } 
    ] 
} 

注意:我需要使用push本身而不是pushAll來完成它。有沒有辦法做到這一點推它,爲什麼它用$每個對象更新它?

+0

將有什麼不同,如果你使用$ pushAll,因爲$ pushAll是解決你的目的是什麼? –

+0

它是一個更大的功能的一部分,我不想複製粘貼功能,只是爲了使用pushAll – Rajs123

回答