Jedną z rzeczy, które możesz zrobić, to zbudować własną mongoDB :-). Mongodb to otwarte źródło a ograniczenie rozmiaru dokumentu jest raczej arbitralne, aby wymusić lepszy projekt schematu . Możesz po prostu zmodyfikować ten wiersz i zbuduj go dla siebie. Uważaj na to.
Najprostszym pomysłem jest umieszczenie każdego małego pytania w innym dokumencie z polem, które odnosi się do jego rodzica.
Innym pomysłem jest ograniczenie liczby dokumentów w rodzicu . Powiedzmy, że limit wynosi N elementów, a rodzic wygląda tak:
{
_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 {}
]
}
W ten sposób modyfikując numer N masz pewność, że będziesz w 16 MB BSON. Aby przeczytać całą ankietę, możesz wybrać
db.coll.find({id: the Id you need})
a następnie połączyć całą ankietę na poziomie aplikacji. Nie zapomnij również zapewnić indeksu w id
.
Wypróbuj różne rzeczy, wykonaj test porównawczy swoich danych i zobacz, co działa dla Ciebie.