1
我在我的文件有「國家」的數組:檢查數組第一個值,插入新的有條件
{
"_id: ObjectId("53026de61e30e2525d000004")
"states" : [
{
"name" : "complete",
"userId" : ObjectId("52f4576126cd0cbe2f000005"),
"_id" : ObjectId("53026e16c054fc575d000004")
},
{
"name" : "active",
"userId" : ObjectId("52f4576126cd0cbe2f000005"),
"_id" : ObjectId("53026de61e30e2525d000004")
}
]
}
我只是插入一個新的狀態到陣列的前面,當有一個新的狀態。目前的工作,直到mongo 2.6發佈在這裏:Can you have mongo $push prepend instead of append?
但是我不希望用戶能夠在行中保存兩次相同的狀態。 I.E.如果它已經完成,你不應該添加另一個'完整'狀態。有沒有一種方法可以檢查數組中的第一個元素,並且只有在一個查詢/更新命令與mongo不相同時才插入新狀態。
我說一個查詢/更新,因爲mongo不支持事務,所以我不想查詢數組中的第一個元素,然後發送另一個更新語句,因爲如果另一個狀態得到插入我的查詢和我的更新之間。