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

$jsonSchema

Nouveau depuis la version 4.0.

Non pris en charge par le cluster Elastic.

L'$jsonSchemaopérateur dans Amazon DocumentDB est utilisé pour filtrer les documents en fonction d'un schéma JSON spécifié. Cet opérateur vous permet d'interroger des documents qui correspondent à un schéma JSON particulier, en veillant à ce que les documents récupérés respectent les exigences spécifiques en matière de structure et de type de données.

À l'aide de l'opérateur de requête d'$jsonSchemaévaluation dans le cadre de la création d'une collection, vous pouvez valider le schéma des documents insérés dans la collection. Voir Utilisation de la validation du schéma JSON pour plus d'informations.

Paramètres

  • required(tableau) : Spécifie les champs obligatoires dans le document.

  • properties(objet) : définit le type de données et les autres contraintes pour chaque champ du document.

Exemple (MongoDB Shell)

L'exemple suivant illustre l'utilisation de l'$jsonSchemaopérateur pour filtrer la employees collection afin de récupérer uniquement les documents contenant les name age champs, et et le employeeId champ est de typestring. employeeId

Création d'exemples de documents

db.employees.insertMany([ { "name": { "firstName": "Carol", "lastName": "Smith" }, "employeeId": "1" }, { "name": { "firstName": "Emily", "lastName": "Brown" }, "employeeId": "2", "age": 25 }, { "name": { "firstName": "William", "lastName": "Taylor" }, "employeeId": 3, "age": 24 }, { "name": { "firstName": "Jane", "lastName": "Doe" }, "employeeId": "4" } ]);

Exemple de requête

db.employees.aggregate([ { $match: { $jsonSchema: { required: ["name", "employeeId", "age"], properties: { "employeeId": { "bsonType": "string" } } } }} ]);

Sortie

{ "_id" : ObjectId("6908e8b61f77fc26b2ecd26f"), "name" : { "firstName" : "Emily", "lastName" : "Brown" }, "employeeId" : "2", "age" : 25 }

Exemples de code

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

Node.js
const { MongoClient } = require('mongodb'); async function filterByJsonSchema() { 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('employees'); const result = await collection.aggregate([ { $match: { $jsonSchema: { required: ['name', 'employeeId', 'age'], properties: { 'employeeId': { 'bsonType': 'string' } } } } } ]).toArray(); console.log(result); await client.close(); } filterByJsonSchema();
Python
from pymongo import MongoClient def filter_by_json_schema(): 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['employees'] result = list(collection.aggregate([ { '$match': { '$jsonSchema': { 'required': ['name', 'employeeId', 'age'], 'properties': {'employeeId': {'bsonType': 'string'}} } } } ])) print(result) client.close() filter_by_json_schema()