我想从包含对象的集合中找到不同的城市值,如下所述:
{
location:{
address:'XYZ',
city:'New York'
}
}
你可以帮我解决我需要解决的问题吗?我知道我必须使用elemMatch
和$exists
。但我的以下查询似乎工作并返回一个空集:
db.collectionName.distinct({'location':{'city':{$exists: true}}})
答案 0 :(得分:3)
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
答案 1 :(得分:1)
db.collectionName.distinct('location.city')
应该可以解决问题。