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!