Heim >Backend-Entwicklung >PHP-Tutorial >So führen Sie Geodatenabfragen mit Mongodb durch
Mongodb, eine verteilte Dokumentenspeicherdatenbank, die in der Sprache C++ geschrieben ist, zielt darauf ab, skalierbare, leistungsstarke Datenspeicherlösungen für WEB-Anwendungen bereitzustellen. MongoDB ist eine leistungsstarke, schemalose Open-Source-Dokumentendatenbank, die derzeit eine beliebte NoSQL-Datenbank ist. Es kann in vielen Szenarien als Ersatz für herkömmliche relationale Datenbanken oder Schlüssel-/Wertspeicher verwendet werden.
In der mobilen Entwicklung werden häufig Positionierungsfunktionen verwendet. Beispielsweise verwenden Apps wie Meituan, Ele.me, Maoyan Movies alle die mobile Positionierung und finden dann einige Standorte in der Nähe Ihres geografischen Standorts. Information.
In diesem Artikel wird Mongodb als Datenbank verwendet, um zu beschreiben, wie Positionierungsabfragen auf Datenbankebene durchgeführt werden.
Analyse
Zum Beispiel müssen wir eine App erstellen. Händler können ihre Produkte in der App veröffentlichen und Benutzer können die App öffnen, um die Produkte in ihrer Nähe aus der Ferne anzuzeigen.
Wenn kein geografischer Standort erforderlich ist, ist dies einfach. Fügen Sie einfach die Datenbank ein und überprüfen Sie die Datenbank. Wenn jedoch der geografische Standort verwendet wird, müssen Sie einige Standortfunktionen von Mongodb verwenden.
Mongodb verfügt über einen Geodatenindex, der zur Berechnung von Breiten- und Längengraden verwendet werden kann. Im Folgenden wird weiterhin erläutert, wie diese Funktion verwendet wird.
Implementierung
Im Folgenden wird Nodejs+mongoose als Beispiel genommen
Schema erstellen:
const mongoose = require( 'mongoose' );let goodsSchema = new mongoose.Schema( { name: String, price: Number, location: { type: [ Number ], index: { type: '2dsphere', sparse: true } } }, { collection: 'Goods'} )
Modell erstellen
letgoodsModel = mongoose .model('Goods', goodsSchema)
Daten einfügen
Daten gemäß dem folgenden Datenformat in die Datenbank einfügen:
{ "name":"名字", "price":12, "location":[经度,纬度] }
Benutzer in der Nähe anzeigen Die Daten von
goodsModel.find( { 'location': { $nearSphere: [ parseFloat( 经度 ), parseFloat( 纬度 ) ], $maxDistance: 1000 } } ).limit(10).skip(0).lean().exec();
Der oben genannte Inhalt dient dazu, Ihnen die Verwendung des Standortindex mitzuteilen. Ich hoffe, Sie haben eine sehr praktische Funktion kann es anwenden.
Verwandte Empfehlungen:
Wie kann die Nutzung von Datenbankindizes effizienter gestaltet werden?
Indexmethode der MySQL-Datentabelle anzeigen
Was ist die MongoDB-Datenbank?
Das obige ist der detaillierte Inhalt vonSo führen Sie Geodatenabfragen mit Mongodb durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!