En sak du kan göra är att bygga din egen mongoDB :-). Mongodb är en öppen källa och begränsningen av storleken på ett dokument är ganska godtycklig för att genomdriva en bättre schemadesign . Du kan bara ändra this#L50.his# /a> och bygg det själv. Var försiktig med detta.
Den enklaste idén är att ha varje liten fråga i ett annat dokument med ett fält som refererar till dess överordnade.
En annan idé är att begränsa antalet dokument i den överordnade . Låt oss säga att du begränsar antalet N element så ser föräldern ut så här:
{
_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 {}
]
}
På så sätt ändrar du nummer N kan du se till att du har 16 MB BSON. Och för att läsa hela undersökningen kan du välja
db.coll.find({id: the Id you need})
och kombinera sedan hela undersökningen på applikationsnivå. Glöm inte heller att säkerställaIndex på id
.
Prova olika saker, gör ett riktmärke på din data och se vad som fungerar för dig.