mongodbの場所の検索

WBOY
WBOYオリジナル
2016-08-08 09:23:261111ブラウズ

LBS は、各場所の緯度と経度の座標を保存し、近くの場所を検索し、地理的場所のインデックスを確立してクエリの効率を向上させます。

mongodb 地理的位置インデックス、2d および 2dsphere、平面と球に対応します。

1. lbs コレクションの保存場所の座標を作成します

use lbs;

db.lbs.insert(
    {
        loc:{
            type: "Point",
            coordinates: [113.332264, 23.156206]
        },
        name: "广州东站"
    }
)

db.lbs.insert(
    {
        loc:{
            type: "Point",
            coordinates: [113.330611, 23.147234]
        },
        name: "林和西"
    }
)

db.lbs.insert(
    {
        loc:{
            type: "Point",
            coordinates: [113.328095, 23.165376]
        },
        name: "天平架"
    }
)

2. 地理的な場所のインデックスを作成します

3. 現在の場所は次のとおりです:広場、


座標:
113.323568, 23.146436


近くから 1 キロメートル以内の地点を検索し、近いものから遠いものへ並べ替えます

db.lbs.ensureIndex(
    {
        loc: "2dsphere"
    }
)
検索結果: rrree
phpコードは次のとおりです:
db.lbs.find(
    {
        loc: {
            $near:{
                $geometry:{
                    type: "Point",
                    coordinates: [113.323568, 23.146436]
                },
                $maxDistance: 1000
            }
        }
    }
)
デモ php コードでは、まずユーザーを作成し、mongodb の lbs で認証を実行する必要があります。方法は次のとおりです:
{ "_id" : ObjectId("556a651996f1ac2add8928fa"), "loc" : { "type" : "Point", "coordinates" : [ 113.330611, 23.147234 ] }, "name" : "林和西" }

上記では、関連するコンテンツを含め、mongodb の地理的位置検索を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。