MongoDB位置NearBy唯一
我已经在数据库中创build了一个集合,并使用适当的索引进行更新,以将其恢复。 我正在与folloging
例:
db.car.save({ "name":"Toyota car", "affiliation":"Toyota", "loc":{"lon":55.93939251390387,"lat":-113.999}}) db.car.find({"loc" : {"$within" : {"$center" : [[50.93939251390,-114],5]}}})
我在数据库中有100K +logging,当我search上面的查询时返回20Klogging。
其实这在“名称”列中有一些重复的值。 我怎样才能得到“名称”的独特价值。
您无法在MongoDB 2.0.x中使用查询来获得所需的结果,因此需要在应用程序代码中处理结果。
如果你只是在名字后面,你可以限制输出中的字段:
db.car.find( {"loc" : {"$within" : {"$center" : [[50.93939251390,-114],5]}}}, {"_id": 0, "name": 1} )
如果你想find不同的名字,你可以做这样的事情:
// Save cars we've seen > var cars_seen = {} // The unique list we actually want > var cars = [] // Find closest cars to given geo point > db.car.find( {"loc" : {"$within" : {"$center" : [[50.93939251390,-114],5]}}}, {"_id": 0, "name": 1} ).forEach( function(doc) { // Add names we haven't seen yet if (!cars_seen[doc.name]) { cars_seen[doc.name] = 1; cars.push(doc.name); } } ) > cars [ "Skoda", "Benz", "Skoda SUV" ]