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

mongodbは、ポイントがポリゴン内にあるかどうかを確認します

    注文と関係があるようです。 $geoWithinを使用している場合 ポリゴン内のポイントを見つけようとしている場合、その中にあるのは検索しているフィールドです。ただし、$geoIntersects どちらの方向にも機能するため、ポリゴン内のポイント、またはポイントを含むポリゴンを検​​索できます。例:

    db.geom.insert({
      "polygons": {
        "type":"Polygon",
        "coordinates": [[
          [ 17.60083012593064, 78.18557739257812],
          [ 17.16834652544664, 78.19381713867188],
          [ 17.17490690610013, 78.739013671875],
          [ 17.613919673106714, 78.73489379882812],
          [ 17.60083012593064, 78.18557739257812]
        ]]
      }
    });
    
    db.geom.find({
      polygons: {
        $geoIntersects: {
          $geometry: {
            "type": "Point",
            "coordinates": [17.3734, 78.4738]
          }
        }
      }
    });
    

    また、最後にポリゴンの最初のポイントを繰り返す必要があることに注意してください。最後のペアを削除すると、$errが表示されます :

    クエリを正規化できません:BadValue bad geoquery"エラー。

    MongoDBでは無効なジオメトリを挿入でき、2dsphereインデックスを追加しようとしたり、intersects / within / nearクエリを実行したりした場合にのみ文句を言うようです。これは、GeoJSONが有効なジオメトリでなくても有効なJSONである可能性があるためです。



    1. Jedisライブラリを使用してRedisSentinelへの接続を設定するにはどうすればよいですか?

    2. camel-redisでredisキー/値を設定する

    3. Redis:データベースに保存されているすべての値を返します

    4. MongoDBでのジャーナリングの管理