Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: MongoDB vCore
O $type
operador seleciona documentos se um campo for do tipo especificado. Isso é útil para validação de dados e para garantir a consistência entre documentos em uma coleção. O $type
operador aceita números de tipo BSON e aliases de cadeia de caracteres.
Sintaxe
A sintaxe do operador é a $isArray
seguinte:
{
<field>: { $type: <BSON type number> | <string alias> }
}
Parâmetros
Descrição | |
---|---|
field |
O campo para verificar o tipo de. |
BSON type number |
Um número correspondente ao tipo BSON (por exemplo, 1 para duplo, 2 para cadeia de caracteres). |
string alias |
Um alias de cadeia de caracteres para o tipo BSON (por exemplo, "double", "string", "object", "array"). |
Tipos BSON comuns
Tipo | Número | Apelido | Descrição |
---|---|---|---|
Duplo | 1 | "double" | Ponto flutuante de 64 bits |
fio | 2 | "string" | Cadeia de caracteres UTF-8 |
Objeto | 3 | "object" | Documento inserido |
Matriz | 4 | "matriz" | Matriz |
IdentificadorDeObjeto | 7 | "objectId" | IdentificadorDeObjeto |
Booliano | oito | "bool" | Booliano |
Data (calendário) | 9 | "date" | Data (calendário) |
Nulo | 10 | "nulo" | Valor nulo |
Inteiro de 32 bits | 16 | "int" | Inteiro de 32 bits |
Timestamp | 17 | "carimbo de data/hora" | Timestamp |
Inteiro de 64 bits | 18 | "long" | Inteiro de 64 bits |
Exemplo
Vamos entender o uso com json de exemplo do stores
conjunto de dados.
{
"_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 })"
}
Exemplo 1: localizar repositórios com nomes de tipo de cadeia de caracteres
O exemplo localiza todos os repositórios em que o name
campo é do tipo de cadeia de caracteres.
db.stores.find(
{ "name": { $type: "string" }},
{ "_id": 1, "name": 1 }).limit(1)
A consulta retorna todos os documentos em que o name
campo contém um valor de cadeia de caracteres.
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort"
}
Exemplo 2: validação de dados usando várias verificações de tipo
Este exemplo demonstra a validação de que os campos essenciais têm os tipos de dados corretos.
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 }
)
A consulta retorna repositórios em que todos os campos especificados têm os tipos de dados esperados, ajudando a garantir a consistência dos dados.
{
"_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 } }
}
Conteúdo relacionado
- Examinar as opções de migração do MongoDB para o Azure Cosmos DB for MongoDB (vCore)
- Leia mais sobre Compatibilidade de recursos com o MongoDB