Ich versuche ein Dokument in Mongoose zu laden, wenn es 10 Kilometer von einer aktuellen Lat/Lon-Koordinate entfernt ist.Mungo ergreift ein Dokument für eine bestimmte Entfernung von einer Längen- und Breitengradkoordinate
Also lassen Sie uns sagen, ich habe diese Aufgabe:
{
lat: -33.9493992,
lon: 151.1114885
}
Und in meiner Mongoose Datenbank habe ich eine Sammlung und jedes Dokument innerhalb dieser Sammlung auch die lat-lon Tasten speichern. Wie kann ich nur Einträge mit einer bestimmten Entfernung von einer bestimmten Koordinate erfassen?
So zum Beispiel möchte ich nur die Dokumente greifen, die bis zu 10 Kilometer von der oben genannten Koordinate entfernt sind.
Ich würde jede Hilfe zu schätzen wissen.
EDIT: Mein Code:
Initialisierung des Modells:
var schema = new mongoose.Schema({
title: String,
title: String,
coordinates: {
type: [ Number ],
default: [0, 0],
index: '2dsphere'
}
});
global.models.Point = mongoose.model('Point', schema);
und der Code versucht, in das Modell zu finden: router.route ('/ Punkte /: Breite /: lon ') .get (function (req, res) { console.log (' lat: '+ req.params.lat +' lon:‘+ req.params.lon);
global.models.Point.find({
coordinates: {
$near: {
$maxDistance: 100/111.12,
$geometry: {
type: 'Point',
coordinates: [req.params.lon, req.params.lat]
}
}
}
}, function (err, res) {
if (err) {
return console.log(err);
}
console.log(res);
});
});
Das Objekt, wie es in der Datenbank Sammlung gespeichert ist:
{
"_id" : ObjectId("56ea103eefedec96b6d4b203"),
"title" : "Some title",
"coordinates" : [
5.2260167,
52.3500607
]
}
Lesen Sie die Dokumentation. ['$ nearsphere'] (https://docs.mongodb.org/manual/reference/operator/query/nearSphere/). Sie möchten keine separaten Eigenschaften. In der Dokumentation erfahren Sie, wie Ihr Dokument die Daten speichern soll. –