Une chose que vous pouvez faire est de construire votre propre mongoDB :-). Mongodb est une source ouverte et la limitation de la taille d'un document est plutôt arbitraire pour appliquer un meilleure conception de schéma . Vous pouvez simplement modifier cette ligne et construisez-le vous-même. Soyez prudent avec cela.
L'idée la plus simple est d'avoir chaque petite question dans un document différent avec un champ qui fait référence à son parent.
Une autre idée est de limiter le nombre de documents dans le parent . Disons que vous limitez est N éléments alors le parent ressemble à ceci :
{
_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 cette façon, en modifiant le numéro N, vous pouvez vous assurer que vous serez dans 16 Mo de BSON. Et pour lire l'intégralité de l'enquête, vous pouvez sélectionner
db.coll.find({id: the Id you need})
puis combinez l'ensemble de l'enquête au niveau de l'application. N'oubliez pas non plus d'assurerIndex sur id
.
Essayez différentes choses, faites une analyse comparative de vos données et voyez ce qui fonctionne pour vous.