我有一组带有地理字段(lng / lat)的地址。 现在,我希望获得具有唯一地理lng / lat对的文档,以使用引脚填充Google地图实例。所以我自然不希望多个引脚相互叠加,所以我只需要获得唯一的lng / lat对。
var mongoose = require("mongoose"),
Schema = mongoose.Schema;
var VenueSchema = new Schema({
name: String,
street: String,
streetNumber: String,
postCode: String,
suburb: String,
state: String,
geo: Array, // [lng, lat]
});
var Venue = mongoose.model('Venue', VenueSchema);
使用distinct运算符,我可以轻松获得所有唯一的lng / lat。不幸的是,这个查询返回一个lng / lat地理点数组,而不是带有字段的文档。所以我不知道哪个商业名称属于geo point。
keystone.list('Venue').model.find().distinct('geo')
.exec(function(err, venues){
if(err){
throw err;
}
console.log(venues); // Array of lat/lng pairs
});
如何构建查询,以便获得包含没有两个地理位置相同的所有字段的实际文档?