$geometry - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$geometry

Der $geometry Operator in Amazon DocumentDB wird verwendet, um ein GeoJSON-Geometrieobjekt als Teil einer Geodatenabfrage anzugeben. Dieser Operator wird in Verbindung mit anderen Operatoren für Geodatenabfragen wie $geoWithin und $geoIntersects zur Durchführung räumlicher Abfragen Ihrer Daten verwendet.

In Amazon DocumentDB unterstützt der $geometry Operator die folgenden GeoJSON-Geometrietypen:

  • Point

  • LineString

  • Polygon

  • MultiPoint

  • MultiLineString

  • MultiPolygon

  • GeometryCollection

Parameter

  • type: Der Typ des GeoJSON-Geometrieobjekts, z. B.Point,Polygon, usw.

  • coordinates: Ein Array von Koordinaten, das die Geometrie darstellt. Die Struktur des Koordinatenarrays hängt vom Geometrietyp ab.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $geometry Operator verwendet wird, um eine $geoIntersects Abfrage in Amazon DocumentDB durchzuführen.

Erstellen Sie Beispieldokumente

db.locations.insertMany([ { "_id": 1, "name": "Location 1", "location": { "type": "Point", "coordinates": [-73.983253, 40.753941] } }, { "_id": 2, "name": "Location 2", "location": { "type": "Polygon", "coordinates": [[ [-73.998427, 40.730309], [-73.954348, 40.730309], [-73.954348, 40.780816], [-73.998427, 40.780816], [-73.998427, 40.730309] ]] } } ]);

Beispiel für eine Abfrage

db.locations.find({ "location": { "$geoIntersects": { "$geometry": { "type": "Polygon", "coordinates": [[ [-73.998, 40.730], [-73.954, 40.730], [-73.954, 40.781], [-73.998, 40.781], [-73.998, 40.730] ]] } } } })

Ausgabe

[ { "_id": 2, "name": "Location 2", "location": { "type": "Polygon", "coordinates": [ [ [-73.998427, 40.730309], [-73.954348, 40.730309], [-73.954348, 40.780816], [-73.998427, 40.780816], [-73.998427, 40.730309] ] ] } } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $geometry Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('locations'); const query = { "location": { "$geoIntersects": { "$geometry": { "type": "Polygon", "coordinates": [[ [-73.998, 40.730], [-73.954, 40.730], [-73.954, 40.781], [-73.998, 40.781], [-73.998, 40.730] ]] } } } }; const result = await collection.find(query).toArray(); console.log(result); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['locations'] query = { "location": { "$geoIntersects": { "$geometry": { "type": "Polygon", "coordinates": [[ [-73.998, 40.730], [-73.954, 40.730], [-73.954, 40.781], [-73.998, 40.781], [-73.998, 40.730] ]] } } } } result = list(collection.find(query)) print(result) client.close() example()