sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Hay un trabajo de tamaño máximo de bson de MongoDB?

Una cosa que puede hacer es construir su propio mongoDB :-). Mongodb es una fuente abierta y la limitación sobre el tamaño de un documento es bastante arbitraria para hacer cumplir un mejor diseño del esquema . Simplemente puede modificar esta línea y constrúyelo por ti mismo. Ten cuidado con esto.

La idea más sencilla es tener cada pequeña pregunta en un documento diferente con un campo que hace referencia a su padre.

Otra idea es limitar el número de documentos en el padre . Digamos que limitas N elementos, entonces el padre se ve así:

{
  _id : ObjectId(),
  id : { type: Number, required: true },
  created: { type: Date, default: Date.now },  // you can store it only for the first element
  last_modified: { type: Date, default: Date.now }, // the same here
  data : [{
    id: 65,
    question: {
        test: "some questions",
        answers: [2,5,6]
    }
  }, ... up to N of such things {}
  ]
}

De esta manera, modificando el número N, puede asegurarse de que estará en 16 MB de BSON. Y para leer toda la encuesta puedes seleccionar

db.coll.find({id: the Id you need}) y luego combine toda la encuesta en el nivel de aplicación. Además, no olvide asegurarIndex en id .

Pruebe cosas diferentes, haga una evaluación comparativa de sus datos y vea qué funciona para usted.