我有一个地址列表,我想得到一个州的城市名单。一张清晰的城市清单。按州划分。
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);这似乎给了我一个城市的列表,但它没有排序,alphabetically...So --我很难检查我的数据。
搜索我得到的信息,
"Atmore",
"Daleville",
"Abbeville",
"Bessemer",
"Alberta",
"Huntsville",
"Addison",
"Albertville",
"Helena",
"Alexandria",
...帮忙-干杯。
发布于 2018-02-09 15:32:31
因此,mongdb不同的函数返回一个不同值的数组,因此在您的情况下不能链接任何类似排序的其他操作。
与find返回游标一样,您可以应用排序来对返回的数据进行排序。
对于带有排序的非不同结果,可以使用
Locations.find( {'address.state':state}, {_id:1,'address':1,'name':1}).sort({'address.city':1}).exec(callback);对于不同的和排序,您必须使用聚合。
Locations.aggregate( [{$match:{'address.state':state}},{$group:{_id:'$address.city'}},{$sort:{_id:1}}).exec(callback);https://stackoverflow.com/questions/48700548
复制相似问题