Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda