sql >> データベース >  >> NoSQL >> MongoDB

MongoDBクエリ:$ near withgregation

    $geoNear を使用する必要があります 、V2.4以降を使用している場合のみ

    db.users.aggregate(   
        {$geoNear : {
            near: [-1, -2],
            distanceField: "distance",
            query : {"_id" : "id1"},
            uniqueDocs: true,
            maxDistance : 2000
    }})
    

    編集:質問に編集した後

    次のクエリは場所と距離を提供しますが、内部(配列要素)_id

    は取得しません。
    db.users.aggregate(   
      {$geoNear : {
        near: [-1, -2],
        distanceField: "distance",
        includeLocs: "location",
        query : {"_id" : "id1"},
        maxDistance : 2000
      }},
      {$project : {"location" : 1, "_id" : 0, "distance" : 1}} 
    )
    

    includeLocsが追加されていることに注意してください uniqueDocs: trueの削除

    内部の_idも取得するには、(この例に従って)巻き戻し、条件付きでプロジェクトを作成する必要がありますが、_idの代わりにアドレスが必要でない限り、それだけの価値はないと思います。




    1. AirflowとのMongoDB接続の設定

    2. phpRedisのクラスターへの移行とコンシステントハッシュ

    3. コレクションからMongoDBプル配列要素

    4. Key-Valueデータストアへのディレクトリ階層の保存