对嵌套对象集合的Azure mongodb查询未按预期工作
我正在使用CosmosDB(mongodb)来存储我的数据 我收集了以下文件对嵌套对象集合的Azure mongodb查询未按预期工作,mongodb,azure-cosmosdb,Mongodb,Azure Cosmosdb,我正在使用CosmosDB(mongodb)来存储我的数据 我收集了以下文件 [ { "title":"Bucket1", "elementsUsed" : [ {"elementType" : 1, "count" : 1}, {"elementType" : 5, "count" : 2}, ] }, { "title":"Bucket2",
[
{
"title":"Bucket1",
"elementsUsed" : [
{"elementType" : 1, "count" : 1},
{"elementType" : 5, "count" : 2},
]
},
{
"title":"Bucket2",
"elementsUsed" : [
{"elementType" : 1, "count" : 1}
]
}
]
当我想查找具有所有指定元素类型的bucket时,下面的查询在本地安装的mongodb实例上非常有效
Bucket.find({"elementsUsed.elementType": {"$all": [1,5]}})
它正确返回Bucket1
但当我在CosmosDB上执行相同的查询时,它返回的结果为零。这是CosmosDB的已知限制吗
我搜索了有关CosmosDB限制的信息,但没有找到文档。我执行与您相同的操作,也找不到任何数据。然而,根据官方消息,cosmos db mongo api应该支持
$all
操作符
我对它进行了测试,效果良好
源文档:
运行命令:
db.families.find(
{ "Location": { $all: [-121.758, 46.87] } }
)
根据我的测试和经验,Cosmos DB mongo API并不支持所有mongo功能。我假设$all
opeartor没有在Cosmos DB mongo API中完全实现。此外,您可以在此处添加您的注释,以要求提供更多声明
希望对您有所帮助。您是否尝试过使用“$和”替换
$all
。另外:您确定您的dbs包含相同的值吗?我尝试了$,但刚才它不起作用。我已确保我的收藏有匹配的文档。$all适用于字符串、数字数组。它不适用于对象数组。我的模式中也有一个字符串数组$所有关于它的查询都很好。让我试试反馈通道。谢谢@PrashantAmbardekar是的,和你的情况一样。等待你的进展。只是更新一下,我还没有收到azure人员的消息。我已经着手解决了这个问题,添加了相同集合的简化版本(数字数组),只是为了查询。@PrashantAmbardekar好的,如果你不介意的话,你可以标记答案,暂时结束这个案例。