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" ]