cosmosdb mongo api对于某些命令不起作用 [英] cosmosdb mongo api not working for some commands

查看:40
本文介绍了cosmosdb mongo api对于某些命令不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Azure上的 cosmosdb
因为我正在使用 mongodb api
我有一个请求" 集合,里面有一个声明" 数组

I am using cosmosdb on azure
In that I am using mongodb api
I have a "request" collection inside that there is a "claims" array

如果我使用此命令:

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

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

It is not working in cosmosdb mongo api but working for local mongo service instance I have hosted.

我的请求对象如下

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

推荐答案

并非所有MongoDB的查询语法/功能都已实现.似乎是这种情况.

Not all of MongoDB's query syntax / capabilities are implemented. This appears to be such a case.

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

However, this slight workaround should work for you - I just tested it on my own CosmosDB (MongoDB API) collection:

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

请注意,您也可以呼叫db.request.find()而不需要呼叫getCollection().

Note that you can also call db.request.find() without the need for a call to getCollection().

这篇关于cosmosdb mongo api对于某些命令不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆