Maison > développement back-end > tutoriel php > Comment faire des requêtes géospatiales avec Mongodb

Comment faire des requêtes géospatiales avec Mongodb

小云云
Libérer: 2023-03-17 16:42:01
original
2012 Les gens l'ont consulté

Mongodb, une base de données de stockage de documents distribuée, écrite en langage C++, vise à fournir des solutions de stockage de données évolutives et performantes pour les applications WEB. MongoDB est une base de données de documents hautes performances, open source et sans schéma, qui est actuellement une base de données NoSQL populaire. Il peut être utilisé pour remplacer les bases de données relationnelles traditionnelles ou le stockage clé/valeur dans de nombreux scénarios.

Dans le développement mobile, les fonctions de positionnement sont souvent utilisées. Par exemple, des applications telles que Meituan, Ele.me, Maoyan Movies, etc. utilisent toutes le positionnement mobile, puis recherchent certains emplacements à proximité de vos services de localisation géographique. information.

Cet article utilisera donc Mongodb comme base de données pour décrire comment effectuer des requêtes de positionnement au niveau de la base de données.

Analyse

Par exemple, nous devons créer une application. Les commerçants peuvent publier leurs produits sur l'application, et les utilisateurs peuvent ouvrir l'application pour voir les produits les plus proches d'eux de loin.

S'il n'y a pas besoin de localisation géographique, c'est facile à gérer. Insérez simplement la base de données et vérifiez directement la base de données. Cependant, si la localisation géographique est utilisée, vous devez utiliser certaines fonctions de localisation de Mongodb.

Mongodb a un index géospatial, qui peut être utilisé pour calculer la latitude et la longitude. Ce qui suit continue de présenter comment utiliser cette fonction.

Implémentation

Ce qui suit prend Nodejs+mongoose comme exemple

Créer un schéma :

const mongoose = require( 'mongoose' );let goodsSchema = new mongoose.Schema( {
 name: String,
 price: Number,
 location: {
     type: [ Number ],
     index: {
         type: '2dsphere',
         sparse: true
     }
 }
}, {
 collection: 'Goods'} )
Copier après la connexion

Créer un modèle

laisser marchandisesModèle = mangouste .model('Goods', GoodsSchema)

Insérer les données

Insérer les données dans la base de données selon le format de données suivant :

{ "name":"名字", "price":12, "location":[经度,纬度]
}
Copier après la connexion

Afficher les utilisateurs à proximité Les données de

goodsModel.find( {     'location': {
         $nearSphere: [             parseFloat( 经度 ),             parseFloat( 纬度 )
         ],
         $maxDistance: 1000
     }
 } ).limit(10).skip(0).lean().exec();
Copier après la connexion


Le contenu ci-dessus est destiné à partager avec vous l'utilisation de l'index de localisation. J'espère que vous en aurez besoin. peut l'utiliser.

Recommandations associées :

Comment rendre l'utilisation des index de bases de données plus efficace ?

Afficher la méthode d'indexation de la table de données MySQL

Qu'est-ce que la base de données mongoDB

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal