Mongo db update查询在azure cosmos db中的嵌入式文档中不起作用

时间:2017-08-03 10:36:05

标签: mongodb azure azure-cosmosdb

嵌入式更新查询在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

1 个答案:

答案 0 :(得分:1)

根据您的描述,我在我这边测试了这个问题,发现Array Update无法按预期工作。我假设Azure CosmosDB的MongoDB兼容性层中尚未实现阵列更新功能。此外,我发现了一个反馈Positional array update via '$' query support,讨论了类似的问题。