Meine Mongo Version ist 3.2.6maxDistance in mongodb: Problem bei der Suche nach in der Nähe von Daten
Meine Tabellen restaurant_locations ist.
Ich habe wie unten angegeben Index:
db.restaurant_locations._ensureIndex({'location': '2dsphere'});
Daten in dieser Tabelle gespeichert ist, wie unten:
> db.restaurant_locations.find().pretty();
{
"_id" : ObjectId("573ff477df3c12bdd6463d07"),
"location" : {
"type" : "Point",
"coordinates" : [
72.5220332,
23.0656791
]
}
}
{
"_id" : ObjectId("573ff5badf3c12bdd6463d08"),
"location" : {
"type" : "Point",
"coordinates" : [
62.5220332,
13.0656791
]
}
}
Nun, wenn ich unten Abfrage Feuer:
db.restaurant_locations.find({
location: {
$near: {
$geometry: {
type: 'Point',
coordinates: [ 70, 20 ]
},
$maxDistance: 100000000
}
}
});
ich sowohl die Aufzeichnungen als Ausgabe:
{ "_id" : ObjectId("573ff477df3c12bdd6463d07"), "location" : { "type" : "Point", "coordinates" : [ 72.5220332, 23.0656791 ] } }
{ "_id" : ObjectId("573ff5badf3c12bdd6463d08"), "location" : { "type" : "Point", "coordinates" : [ 62.5220332, 13.0656791 ] } }
Nun, wenn ich unten Abfrage ausführen:
db.restaurant_locations.find({
location: {
$near: {
$geometry: {
type: 'Point',
coordinates: [ 70, 20 ]
},
$maxDistance: 1000000
}
}
});
ich nur einen Datensatz als Ausgabe:
{ "_id" : ObjectId("573ff477df3c12bdd6463d07"), "location" : { "type" : "Point", "coordinates" : [ 72.5220332, 23.0656791 ] } }
- ich nicht genau, wie ich immer $ maxDistance Arbeit.
- Ich mag Restaurants von 10 km in einem Abstand zu finden, was ist dann die genaue Sache, ich brauche in $ maxDistance passieren?
- meine Koordinaten sind 40 Angenommen und 20, also wenn ich Restaurants wollen innerhalb 10 km, wird über zwei Datensätze Anzeige?
Ich habe viele mongodb docs, Stackoverflow Fragen genannt, aber ich bin nicht genaue Vorstellung bekommen, wie es funktioniert
Vielen Dank im Voraus für die Hilfe
I ausgeführt Abfrage von Ihnen festgelegt, aber es ist immer noch keine Ausgabe geben, wenn ich „10000“ ersetzen „1000000“, bin immer einen Rekord –