1
resposta

[Bug] error: the match filter must be an expression in an object

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"
              }
            }
          }
        }
      }
    }
  }
)
1 resposta

Achei o erro, era erro de escrita...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software