$type - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$type

L'$typeopérateur est utilisé pour vérifier le type de données d'un champ dans un document. Il peut être utilisé lorsque des opérations ou des validations spécifiques au type sont nécessaires. L'$typeopérateur renvoie le type BSON de l'expression évaluée. Le type renvoyé est une chaîne, qui correspond au type du champ ou de l'expression.

La version 2.0 du planificateur a ajouté le support des index pour$type.

Paramètres

  • expression: expression à évaluer.

Exemple (MongoDB Shell)

Création d'exemples de documents

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 } ]);

Exemple de requête

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

Sortie

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

Cette requête renverra les documents dont le age champ est de type « nombre », le email champ est de type « chaîne » et le name champ est de type « chaîne ».

Exemples de code

Pour afficher un exemple de code relatif à l'utilisation de la $type commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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()