我有一个地址列表,我想获得一个州的城市列表。所以一个独特的城市列表。由州。
Locations.find( {'address.state':state}, {_id:1,'address':1,'name':1}, callback );
根据具体国家给我一份完整的清单。
Locations.distinct( 'address.city',{'address.state':state},{$sort:{'address.city':1}}, callback );
这也不起作用。
Locations.distinct( 'address.city',{'address.state':state} ).sort().exec(callback);
这似乎给了我一个城市列表,但它没有按字母顺序排序......所以我很难检查我的数据。
在AL上搜索,
"Atmore",
"Daleville",
"Abbeville",
"Bessemer",
"Alberta",
"Huntsville",
"Addison",
"Albertville",
"Helena",
"Alexandria",
...
帮助 - 干杯。
答案 0 :(得分:2)
因此,mongdb distinct函数返回一个不同值的数组,因此你不能在你的情况下链接任何其他操作,如sort。
与find一样,它返回游标,你可以应用sort来对返回的数据进行排序。
对于排序的非独特结果,您可以使用
Locations.find( {'address.state':state}, {_id:1,'address':1,'name':1}).sort({'address.city':1}).exec(callback);
对于distinct和sort,你都要使用聚合。
Locations.aggregate( [{$match:{'address.state':state}},{$group:{_id:'$address.city'}},{$sort:{_id:1}}).exec(callback);
答案 1 :(得分:0)