Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

230
Visualizações
¿Cómo validé una matriz de objetos usando el validador mongodb?

He estado tratando de validar mis datos usando los validadores provistos por MongoDB pero me encontré con un problema. Aquí hay un documento de usuario simple que estoy insertando.

 { "name" : "foo", "surname" : "bar", "books" : [ { "name" : "ABC", "no" : 19 }, { "name" : "DEF", "no" : 64 }, { "name" : "GHI", "no" : 245 } ] }

Ahora, este es el validador que se ha aplicado para la colección de usuarios. Pero esto ahora funciona para la matriz de libros que estoy insertando junto con el documento. Quiero verificar los elementos dentro del objeto que son los miembros de la matriz de libros. El esquema del objeto no cambiará.

 db.runCommand({ collMod: "users", validator: { $or : [ { "name" : { $type : "string" }}, { "surname" : { $type : "string" }}, { "books.name" : { $type : "string" }}, { "books.no" : { $type : "number" }} ], validationLevel: "strict" });

Sé que este validador es para objetos miembros y no para matrices, pero ¿cómo valido dicho objeto?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Ha pasado mucho tiempo desde que se hizo esta pregunta.
De todos modos, si es que alguien pasa por esto.

Para MongoDB 3.6 y versiones posteriores, esto se puede lograr usando el validador.

 db.createCollection("users", { validator: { $jsonSchema: { bsonType: "object", required: ["name","surname","books"], properties: { name: { bsonType: "string", description: "must be a string and is required" }, surname: { bsonType: "string", description: "must be a string and is required" }, books: { bsonType: [ "array" ], items: { bsonType: "object", required:["name","no"], properties:{ name:{ bsonType: "string", description: "must be a string and is required" }, no:{ bsonType: "number", description: "must be a number and is required" } } }, description: "must be a array of objects containing name and no" } } } } })

Este se encarga de todos sus requisitos.
Para obtener más información, consulte este enlace

over 4 years ago · Santiago Trujillo Relatório

0

Puede hacerlo en 3.6 usando la expresión $jsonSchema .

JsonSchema permite definir un campo como una matriz y especificar restricciones de esquema para todos los elementos, así como restricciones específicas para elementos individuales de la matriz.

Esta publicación de blog tiene una serie de ejemplos que lo ayudarán a descubrir la sintaxis.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda