我正在使用 CosmosDB(带有 mongodb-api)。
对于这个例子,我使用了下一个文档:
/* 1 */
{
"_id" : "abspi4lxwfbfjahdvjm3clnnl4",
"categories" : [
{
"_name" : "category-1",
"date" : NumberLong(1540373282070),
"string" : "20",
"number" : 20
},
{
"_name" : "category-2",
"string" : "1",
"number" : 1
}
]
}
/* 2 */
{
"_id" : "ggi36vpvprdbrdnji5otypbh3e",
"categories" : [
{
"_name" : "category-2",
"date" : NumberLong(1540373282071),
"string" : "1",
"number" : 1
}
}
}
/* 3 */
{
"_id" : "kdh3jdyenapq54clufgajmgfy8",
"categories" : [
{
"_name" : "category-1",
"date" : NumberLong(1540373282070),
"string" : "20",
"number" : 20
},
{
"_name" : "category-2",
"string" : "1",
"number" : 1
},
{
"_name" : "category-3",
"string" : "29",
"number" : 29
}
]
}
我需要检索文档 1 和 3,下一个查询匹配在 mongoDB 中完美运行。
db.getCollection('test_collection')
.find({"categories":{
"$all":[
{"$elemMatch":{"number":20}},
{"$elemMatch":{"number":1}}
]
}
})
在 CosmosDB 中返回 0 条记录。似乎不支持 cosmosDB 中超过 1 个 elemMatch。知道是否可以使用 mongoDB-api 在 CosmosDB 中进行查询?