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

小云云
小云云original
2017-11-25 09:43:412003parcourir

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'} )

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":[经度,纬度]
}

Afficher les utilisateurs à proximité Les données de

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


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!

Déclaration:
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