{
"_id" : ObjectId("59660d4099c1e682e0992ced"),
"alpha" : [
{
"_id" : ObjectId("59660d4199c1e682e0992cee"),
"number" : 1,
"start_at" : ISODate("2017-07-12T11:51:28.895Z"),
"end_at" : ISODate("2017-08-12T11:51:28.895Z"),
"created_at" : ISODate("2017-07-12T11:51:29.346Z"),
"updated_at" : null
}
]
}
Ben yukarıdaki gibi bir belge var ve güncellemek veya alanını 'numara' ve 'updated_at' de değiştirmek isterdiniz 'alpha' dizisinin bir JSON öğesi.(azure cosmosDB/mongoDB) Güncelleme alanları
db.mycol.update({_id: ObjectId("59660d4099c1e682e0992ced"), alpha: {$elemMatch: {_id: ObjectId("59660d4199c1e682e0992cee")}}}, {$set: {"alpha.$.number": 2, "alpha.$.updated_at": new Date()}})
Normal mongodb sunucusu ile çalışıyor:
Bu çalıştı. Ancak azure cosmosdb/mongodb ile tamam diyor ama belgeyi gerçekten güncellemiyor. Neyi yanlış yapıyorum?
Prataksha, herhangi bir iş buldunuz mu? – GeekOnGadgets
iyi evet, önce bütün ** alfa ** dizisini getirdim, sonra da bunun üzerinden yineliyorum ve değiştirmek istediğim verileri değiştirdim. Sonunda bittikten sonra yeni güncellenen değerler ile ** ** set ** ** alpha ** dizisi. Biliyorum, tamamen atomik ** findAndModify ** gibi olmayacak ama şimdilik bu işi yapıyor. AZURE tarafından tam destek bekliyorum. – Prataksha