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.