$type - 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.

$type

Der $type Operator wird verwendet, um den Datentyp eines Felds in einem Dokument zu überprüfen. Er kann verwendet werden, wenn typspezifische Operationen oder Validierungen erforderlich sind. Der $type Operator gibt den BSON-Typ des ausgewerteten Ausdrucks zurück. Der zurückgegebene Typ ist eine Zeichenfolge, die dem Typ des Felds oder Ausdrucks entspricht.

Planner Version 2.0 fügte Indexunterstützung für hinzu$type.

Parameter

  • expression: Der auszuwertende Ausdruck.

Beispiel (MongoDB Shell)

Erstellen Sie Beispieldokumente

db.documents.insertMany([ { _id: 1, name: "John", age: 30, email: "john@example.com" }, { _id: 2, name: "Jane", age: "25", email: 123456 }, { _id: 3, name: 123, age: true, email: null } ]);

Beispiel für eine Abfrage

db.documents.find({ $or: [ { age: { $type: "number" } }, { email: { $type: "string" } }, { name: { $type: "string" } } ] })

Ausgabe

[ { "_id": 1, "name": "John", "age": 30, "email": "john@example.com" }, { "_id": 2, "name": "Jane", "age": "25", "email": 123456 } ]

Diese Abfrage gibt die Dokumente zurück, in denen das age Feld vom Typ „Zahl“, das email Feld vom Typ „Zeichenfolge“ und das name Feld vom Typ „Zeichenfolge“ ist.

Codebeispiele

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

Node.js
const { MongoClient } = require('mongodb'); async function findByType() { 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('documents'); const results = await collection.find({ $or: [ { age: { $type: 'number' } }, { email: { $type: 'string' } }, { name: { $type: 'string' } } ] }).toArray(); console.log(results); client.close(); } findByType();
Python
from pymongo import MongoClient def find_by_type(): 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['documents'] results = list(collection.find({ '$or': [ {'age': {'$type': 'number'}}, {'email': {'$type': 'string'}}, {'name': {'$type': 'string'}} ] })) print(results) client.close() find_by_type()