(AZURE cosmosDB / mongoDB)更新数组中对象的特定元素的字段

时间:2017-07-12 12:12:16

标签: javascript json mongodb azure azure-cosmosdb

{
    "_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
        }
    ]
}

我有一份上述文件,我想更新或更改字段'数字'和' updated_at'在' alpha'的JSON元素中阵列。

我试过了:

db.mycol.update({_id: ObjectId("59660d4099c1e682e0992ced"), alpha: {$elemMatch: {_id: ObjectId("59660d4199c1e682e0992cee")}}}, {$set: {"alpha.$.number": 2, "alpha.$.updated_at": new Date()}})

它可以正常使用mongodb服务器。 但是使用azure cosmosdb / mongodb它说好,但并没有真正更新文档。我做错了什么?

1 个答案:

答案 0 :(得分:3)

  

在'alpha'数组的JSON元素中更新或更改字段'number'和'updated_at'

并非所有MongoDB的查询语法/功能都在Azure Cosmos DB:MongoDB API中实现。 Based on my test,Azure Cosmos DB:MongoDB API现在似乎不支持阵列更新,将来会支持此功能。

enter image description here

如果可能,您可以在User Voice上创建一个项目以提供反馈。