$type - Amazon DocumentDB

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

$type

$typeOperator digunakan untuk memeriksa tipe data bidang dalam dokumen. Ini dapat digunakan ketika operasi atau validasi tipe spesifik diperlukan. $typeOperator mengembalikan tipe BSON dari ekspresi yang dievaluasi. Tipe yang dikembalikan adalah string, yang sesuai dengan jenis bidang atau ekspresi.

Perencana versi 2.0 menambahkan dukungan indeks untuk$type.

Parameter

  • expression: Ekspresi untuk mengevaluasi.

Contoh (MongoDB Shell)

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

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

Kueri ini akan mengembalikan dokumen di mana age bidangnya bertipe “angka”, email bidangnya bertipe “string”, dan name bidangnya bertipe “string”.

Contoh kode

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

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