Estou modelando o mongoDB(atlas), pelo mongodb Compass. e está me apresentando o erro "the match filter must be an expression in an object", consegue me ajudar:
Código da estrutura:
{
"_id": {
"$oid": "63ad96755a4c8685645f3d42"
},
"Nome": "",
"CPF": "",
"DataDeNascimento": {
"$date": {
"$numberLong": "0"
}
},
"Sexo": "",
"Contatos": {
"Email": "",
"Tel01": {
"$numberLong": "0"
},
"Tel02": {
"$numberLong": "0"
}
},
"Endereço": {
"CEP": {
"$numberLong": "0"
},
"Num": 0,
"Rua": "",
"UF": "",
"Pais": ""
}
}
Código da validation:
db.createCollection(
"Usuário",
{
validator:
{
$jsonSchema:
{
title: "Validação de Usuário",
bsonType: "object",
required:
[
"Nome",
"CPF",
"DataDeNascimento",
"Sexo",
"Contatos",
"Endereço"
],
properties:
{
Nome:
{
bsonType: "string",
descrittion: "Informe o Nome Completo"
},
CPF:
{
bsonType: "string",
descrittion: "Informe apenas os números do CPF"
},
DataDeNascimento:
{
bsonType: "date",
description: "Informação Incorreta"
},
Sexo:
{
enum:
[
"Masculino",
"Feminino",
"Prefiro Não Dizer"
],
bsonType: "string",
description: "Informação Incorreta"
},
Contatos:
{
bsonType: "object",
required:
[
"Email",
"Tel01",
"Tel02"
],
properties:
{
Email:
{
bsonType: "string",
pattern : "@mongodb\.com$",
description: "Informe um Email válido"
},
Tel01:
{
bsonType: "int",
descrittion: "Informe apenas os números do Contato"
},
Tel02:
{
bsonType: "int",
descrittion: "Informe apenas os números do Contato"
}
}
},
Endereço:
{
bsonType: "object",
required:
[
"CEP",
"UF",
"Num"
],
properties:
{
CEP:
{
bsonType: "int",
descrittion: "Informe apenas os números do CEP"
},
UF:
{
enum:
[
"AC", "AL", "AM", "AP", "BA",
"CE", "DF", "ES", "GO", "MA",
"MT", "MS", "MG", "PA", "PB",
"PR", "PE", "PI", "RJ", "RN",
"RS", "RO", "RR", "SC", "SP",
"SE", "TO"
],
bsonType: "string",
description: "Informação Incorreta"
},
Num:
{
bsonType: "int",
descrittion: "Informe o número do Logradouro"
}
}
}
}
}
}
}
)