MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Existe um tamanho máximo de bson do MongoDB?


Uma coisa que você pode fazer é construir seu próprio mongoDB :-). Mongodb é uma fonte aberta e a limitação sobre o tamanho de um documento é bastante arbitrária para impor um melhor design de esquema . Você pode apenas modificar esta linha e construí-lo para si mesmo. Tenha cuidado com isso.

A ideia mais direta é ter cada pequena pergunta em um documento diferente com um campo que faz referência ao seu pai.

Outra ideia é limitar o número de documentos no pai . Digamos que você limite é N elementos, então o pai se parece com isso:
{
  _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 {}
  ]
}

Dessa forma, modificando o número N, você pode ter certeza de que estará em 16 MB de BSON. E para ler toda a pesquisa você pode selecionar

db.coll.find({id: the Id you need}) e, em seguida, combinar toda a pesquisa no nível do aplicativo. Também não se esqueça de garantirIndex em id .

Experimente coisas diferentes, faça um benchmark em seus dados e veja o que funciona para você.