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

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

3 years ago

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