Heim >Backend-Entwicklung >PHP-Tutorial >So führen Sie Geodatenabfragen mit Mongodb durch

So führen Sie Geodatenabfragen mit Mongodb durch

小云云
小云云Original
2017-11-25 09:43:412003Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn