查找具有唯一字段的文档
Find documents with unique field
我有一组带有地理字段的地址 (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。不幸的是,此查询 returns 一个 lng/lat 地理点数组,而不是包含字段的文档。所以我不知道哪个商家名称属于哪个地理点。
keystone.list('Venue').model.find().distinct('geo')
.exec(function(err, venues){
if(err){
throw err;
}
console.log(venues); // Array of lat/lng pairs
});
如何构建查询以便获得包含所有字段的实际文档,其中两个地理位置都不相同?
我有一组带有地理字段的地址 (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。不幸的是,此查询 returns 一个 lng/lat 地理点数组,而不是包含字段的文档。所以我不知道哪个商家名称属于哪个地理点。
keystone.list('Venue').model.find().distinct('geo')
.exec(function(err, venues){
if(err){
throw err;
}
console.log(venues); // Array of lat/lng pairs
});
如何构建查询以便获得包含所有字段的实际文档,其中两个地理位置都不相同?