$jsonSchema - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$jsonSchema

Baru dari versi 4.0.

Tidak didukung oleh cluster elastis.

$jsonSchemaOperator di Amazon DocumentDB digunakan untuk memfilter dokumen berdasarkan skema JSON yang ditentukan. Operator ini memungkinkan Anda untuk menanyakan dokumen yang cocok dengan skema JSON tertentu, memastikan bahwa dokumen yang diambil mematuhi persyaratan struktural dan tipe data tertentu.

Dengan menggunakan operator kueri $jsonSchema evaluasi sebagai bagian dari pembuatan koleksi, Anda dapat memvalidasi skema dokumen yang dimasukkan ke dalam koleksi. Lihat Menggunakan validasi skema JSON untuk informasi tambahan.

Parameter

  • required(array): Menentukan bidang yang diperlukan dalam dokumen.

  • properties(object): Mendefinisikan tipe data dan kendala lainnya untuk setiap bidang dalam dokumen.

Contoh (MongoDB Shell)

Contoh berikut menunjukkan penggunaan $jsonSchema operator untuk memfilter employees koleksi untuk hanya mengambil dokumen yang memilikiname, employeeId dan age bidang, dan employeeId bidang adalah jenis. string

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

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

Contoh kode

Untuk melihat contoh kode untuk menggunakan $jsonSchema perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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