我想从包含如下所述对象的集合中找到城市的不同值:
{
location:{
address:'XYZ',
city:'New York'
}
}
你能帮我解决我需要触发的查询吗?我知道我必须使用elemMatch
and $exists
。但我的以下查询似乎有效并返回一个空集:
db.collectionName.distinct({'location':{'city':{$exists: true}}})
db.collection.distinct
将查询作为第二个参数。
这是你应该如何做的: -
db.collectionName.distinct('location.city', {'location.city': {$exists: true}})
此外,您还可以使用此distinct
数据库命令:-
db.runCommand({ "distinct": "collectionName",
"key": "location.city",
"query": {'location.city' : {$exists: true}}
}).values
db.collectionName.distinct('location.city')
应该做的伎俩。