【问题标题】:cosmosdb mongo api not working for some commandscosmosdb mongo api 不适用于某些命令
【发布时间】:2017-11-19 02:59:12
【问题描述】:

我在 azure 上使用 cosmosdb
我正在使用 mongodb api
我有一个 "request" 集合,里面有一个 "claims" 数组

如果我使用这个命令:

db.getCollection('requests').find({"claims.id": 1002})

它不适用于 cosmosdb mongo api,但适用于我托管的本地 mongo 服务实例。

我的请求对象如下

{
    "_id" : NumberLong(1001),
    "claims" : [ {
            "type" : "broadband",
            "id" : NumberLong(1002),
            "createdOn" : NumberLong(1462799667905)
              } ]
}

【问题讨论】:

  • 你的代码看起来很乱(和格式一样),请看看如何增强它的外观。

标签: mongodb azure azure-cosmosdb


【解决方案1】:

并非所有 MongoDB 的查询语法/功能都已实现。好像是这样的情况。

但是,这种轻微的解决方法应该对您有用 - 我刚刚在我自己的 CosmosDB (MongoDB API) 集合上对其进行了测试:

db.getCollection('request').find({claims: { $elemMatch: { id:1002 }}}).pretty()
{
  "_id" : 1001,
  "claims" : [
    {
      "type" : "broadband",
      "id" : 1002,
      "createdOn" : NumberLong("1462799667905")
    }
  ]
}

请注意,您也可以拨打db.request.find() 而无需拨打getCollection()

【讨论】:

  • 大卫,您能否展示一下如何更新数组中的对象的解决方法?
  • 很高兴知道哪些已经实现:)
猜你喜欢
  • 2018-03-31
  • 2022-01-11
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
相关资源
最近更新 更多