Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK:
MongoDB vCore
Operator $type
memilih dokumen jika bidang berjenis yang ditentukan. Ini berguna untuk validasi data dan memastikan konsistensi di seluruh dokumen dalam koleksi. Operator $type
menerima nomor jenis BSON dan alias string.
Sintaksis
Sintaks untuk $objectToArray
operator adalah sebagai berikut:
{
<field>: { $type: <BSON type number> | <string alias> }
}
Parameter-parameternya
Deskripsi | |
---|---|
field |
Bidang untuk memeriksa jenis. |
BSON type number |
Angka yang sesuai dengan jenis BSON (misalnya, 1 untuk ganda, 2 untuk string). |
string alias |
Alias string untuk jenis BSON (misalnya, "double", "string", "object", "array"). |
Jenis BSON Umum
Tipe | Angka | Nama lain | Deskripsi |
---|---|---|---|
Dobel | 1 | "ganda" | Titik mengambang 64-bit |
string | 2 | "string" | String UTF-8 |
Objek | 3 | "objek" | Dokumen yang disematkan |
Array | 4 | "array" | Array |
IDObjek | 7 | objectId | IDObjek |
Boolean (tipe data yang hanya memiliki dua nilai: true atau false) | 8 | "bool" | Boolean (tipe data yang hanya memiliki dua nilai: true atau false) |
Tanggal | 9 | "tanggal" | Tanggal |
Nol | 10 | "null" | Nilai null |
bilangan bulat 32-bit | 16 | "int" | bilangan bulat 32-bit |
Penanda Waktu | 17 | "tanda waktu" | Penanda Waktu |
bilangan bulat 64-bit | 18 | "panjang" | bilangan bulat 64-bit |
Contoh
Mari kita pahami penggunaan dengan sampel JSON dari himpunan stores
data.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"location": { "lat": -48.9752, "lon": -141.6816 },
"staff": { "employeeCount": { "fullTime": 12, "partTime": 19 } },
"sales": {
"salesByCategory": [ { "categoryName": "Desk Lamps", "totalSales": 37978 } ],
"revenue": 37978
},
"promotionEvents": [
{
"eventName": "Crazy Deal Days",
"promotionalDates": {
"startDate": { "Year": 2023, "Month": 9, "Day": 27 },
"endDate": { "Year": 2023, "Month": 10, "Day": 4 }
},
"discounts": [
{ "categoryName": "Desks", "discountPercentage": 22 },
{ "categoryName": "Filing Cabinets", "discountPercentage": 23 }
]
}
],
"company": "Trey Research",
"city": "Lake Freeda",
"storeOpeningDate": "2024-09-26T22:55:25.779Z",
"lastUpdated": "Timestamp({ t: 1729983325, i: 1 })"
}
Contoh 1: Temukan penyimpanan dengan nama jenis string
Contoh menemukan semua penyimpanan di mana name
bidang berjenis string.
db.stores.find(
{ "name": { $type: "string" }},
{ "_id": 1, "name": 1 }).limit(1)
Kueri mengembalikan semua dokumen di name
mana bidang berisi nilai string.
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort"
}
Contoh 2: Validasi data menggunakan pemeriksaan beberapa jenis
Contoh ini menunjukkan bahwa memvalidasi bahwa bidang penting memiliki jenis data yang benar.
db.stores.find({
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": { $type: "string" },
"location": { $type: "object" },
"staff.employeeCount.fullTime": { $type: ["int", "long"] },
"promotionEvents": { $type: "array" }},
{ "_id": 1, "name": 1,"location":1, "staff": 1 }
)
Kueri mengembalikan penyimpanan di mana semua bidang tertentu memiliki tipe data yang diharapkan, membantu memastikan konsistensi data.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"location": { "lat": -48.9752, "lon": -141.6816 },
"staff": { "employeeCount": { "fullTime": 12 } }
}
Konten terkait
- Meninjau opsi untuk Migrasi dari MongoDB ke Azure Cosmos DB untuk MongoDB (vCore)
- Baca selengkapnya tentang Kompatibilitas fitur dengan MongoDB