嵌套对象集合上的Azure mongodb查询无法按预期运行

时间:2018-07-20 11:47:55

标签: mongodb azure-cosmosdb

我正在使用CosmosDB(mongodb)存储数据。

我的存储桶集合中有以下文档

[
    {
        "title":"Bucket1",
        "elementsUsed" : [
            {"elementType" : 1, "count" : 1},
            {"elementType" : 5, "count" : 2},
        ]
    },
    {
        "title":"Bucket2",
        "elementsUsed" : [
            {"elementType" : 1, "count" : 1}
        ]
    }
]

当我要查找具有所有指定的elementType的存储桶时,以下查询在本地安装的mongodb实例上运行完美。

Bucket.find({"elementsUsed.elementType": {"$all": [1,5]}})

它正确返回Bucket1。

但是当我在CosmosDB上执行相同的查询时,它返回零结果。这是CosmosDB的已知限制吗?

我搜索了CosmosDB的限制,但找不到文档。

1 个答案:

答案 0 :(得分:0)

我执行与您相同的操作,也找不到任何数据。但是,基于官方document,cosmos db mongo api应该支持$all运算符。

我对其进行了测试,并且可以正常工作。

源文档:

enter image description here

运行命令:

db.families.find(
    { "Location": { $all: [-121.758, 46.87] } }
)

enter image description here

根据我的测试和经验,Cosmos DB mongo API并不支持所有mongo功能。我假设$all运算符尚未在Cosmos DB mongo API中完全实现。此外,您可以在此处添加feedback,以要求提供更多声明。

希望它对您有帮助。