Một điều bạn có thể làm là xây dựng mongoDB của riêng bạn :-). Mongodb là một nguồn mở và giới hạn về kích thước của tài liệu là khá tùy ý để thực thi thiết kế giản đồ tốt hơn . Bạn chỉ có thể sửa đổi dòng này và xây dựng nó cho chính bạn. Hãy cẩn thận với điều này.
Ý tưởng đơn giản nhất là có mỗi câu hỏi nhỏ trong một tài liệu khác nhau với một trường tham chiếu đến trường gốc của nó.
Một ý tưởng khác là giới hạn số lượng tài liệu trong tài liệu gốc . Giả sử bạn giới hạn là N phần tử thì phần tử gốc trông như thế này:
{
_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 {}
]
}
Bằng cách này, sửa đổi số N, bạn có thể đảm bảo rằng bạn sẽ có 16 MB BSON. Và để đọc toàn bộ khảo sát, bạn có thể chọn
db.coll.find({id: the Id you need})
và sau đó kết hợp toàn bộ cuộc khảo sát ở cấp độ ứng dụng. Cũng đừng quên ensureIndex trên id
.
Hãy thử những thứ khác nhau, làm điểm chuẩn trên dữ liệu của bạn và xem điều gì phù hợp với bạn.