我在azure上使用 cosmosdb
我正在使用 mongodb api
我有一个"请求" 集合,里面有一个"声明" 数组
如果我使用此命令:
db.getCollection('requests').find({"claims.id": 1002})
它在cosmosdb mongo api中不起作用,但是为我托管的本地mongo服务实例工作。
我的请求对象如下
{
"_id" : NumberLong(1001),
"claims" : [ {
"type" : "broadband",
"id" : NumberLong(1002),
"createdOn" : NumberLong(1462799667905)
} ]
}
答案 0 :(得分:2)
并非所有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()
。