我最近更新到Mongodb 2.2.0,發現下面的查詢現在不再起作用。
數據庫是空的,我運行以下命令:
db.Sessions.update({_id:"test",sessions:{$not:{$elemMatch:{type:"Web"}}}},{$push:{sessions:{type:"Web",dateAdded:new Date}}},true)
返回錯誤:
Cannot apply $push/$pushAll modifier to non-array
更新前,下列文件將被創建:
{ "_id" : "test", "sessions" : [ { "type" : "Web", "dateAdded" : ISODate("2012-09-12T15:11:11.942Z") } ] }
有什麼建議嗎?
編輯: 我忘了說,這是另外的$不是在這個版本的假期,因爲下面的正常工作,所以它不是該數組/場不存在的問題。
db.Sessions.update({_id:"test"},{$push:{sessions:{type:"Web",dateAdded:new Date}}},true)
完美,謝謝。 – DwayneBull
這不起作用。當再次調用更新時,它將最終再次推送該對象,因爲$ nin實際上沒有做任何事情。 $ nin不用於檢查數組中的值。 –