嵌入式更新查询在mlab和atlas中工作正常但在Cosmos DB中无效:
我的收藏结构:
{
"_id" : ObjectId("5982f3f97729be2cce108785"),
"password" : "$2y$10$F2P9ITmyKNebpoDaQ1ed4OxxMZSKmKFD9ipiU1klqio239c/nJcme",
"nin" : "123",
"login_status" : 1,
"updated_at" : ISODate("2017-05-16T09:09:03.000Z"),
"created_at" : ISODate("2017-05-16T06:08:47.000Z"),
"files" : [
{
"name" : "abc",
"updated_at" : ISODate("2017-05-16T06:08:48.000Z"),
"created_at" : ISODate("2017-05-16T06:08:48.000Z"),
"_id" : ObjectId("5982f3f97729be2cce108784")
}
],
"name" : "demo",
"email" : "email@gmail.com",
"phone" : "1231234",
}
我的查询是:
db.rail_zones.update(
{'_id': ObjectId("5982f3f97729be2cce108785"),
'files._id' : ObjectId("5982f3f97729be2cce108784")},
{ $set: {'files.$.name' : "Changed"}})
我收到了这个回复:
"acknowledged" : true,
"matchedCount" : 0.0,
"modifiedCount" : 0.0
答案 0 :(得分:1)
根据您的描述,我在我这边测试了这个问题,发现Array Update无法按预期工作。我假设Azure CosmosDB的MongoDB兼容性层中尚未实现阵列更新功能。此外,我发现了一个反馈Positional array update via '$' query support,讨论了类似的问题。