

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

# \$1jsonSchema
<a name="jsonSchema"></a>

Baru dari versi 4.0.

Tidak didukung oleh cluster elastis.

`$jsonSchema`Operator 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](json-schema-validation.md) 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)
<a name="jsonSchema-examples"></a>

Contoh berikut menunjukkan penggunaan `$jsonSchema` operator untuk memfilter `employees` koleksi untuk hanya mengambil dokumen yang memiliki`name`, `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
<a name="jsonSchema-code"></a>

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

------