Едно нещо, което можете да направите, е да изградите своя собствена mongoDB :-). Mongodb е отворен източник и ограничението за размера на документ е доста произволно, за да се наложи по-добър дизайн на схема . Можете просто да промените този ред и го изградете за себе си. Внимавайте с това.
Най-правата идея е всеки малък въпрос в различен документ с поле, което препраща към неговия родител.
Друга идея е да ограничите броя на документите в родитела . Да кажем, че ограничавате N елемента, тогава родителят изглежда така:
{
_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 {}
]
}
По този начин, променяйки номер N, можете да сте сигурни, че ще бъдете в 16 MB BSON. А за да прочетете цялото проучване, можете да изберете
db.coll.find({id: the Id you need})
и след това комбинирайте цялото проучване на ниво приложение. Също така не забравяйте да осигурите индекс на id
.
Опитайте различни неща, направете сравнителен анализ на вашите данни и вижте какво работи за вас.