MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Esiste una dimensione massima del bson di MongoDB in giro?

Una cosa che puoi fare è costruire il tuo mongoDB :-). Mongodb è un source aperto e la limitazione delle dimensioni di un documento è piuttosto arbitraria per imporre un migliore progettazione dello schema . Puoi semplicemente modificare questa riga e costruiscilo per te. Stai attento con questo.

L'idea più semplice è quella di avere ogni piccola domanda in un documento diverso con un campo che fa riferimento al suo genitore.

Un'altra idea è quella di limitare il numero di documenti nel genitore . Diciamo che il limite è N elementi, quindi il genitore appare così:

{
  _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 {}
  ]
}

In questo modo modificando il numero N puoi assicurarti di essere in 16 MB di BSON. E per leggere l'intero sondaggio puoi selezionare

db.coll.find({id: the Id you need}) e quindi combinare l'intero sondaggio a livello di applicazione. Inoltre, non dimenticare di garantireIndex su id .

Prova diverse cose, fai un benchmark sui tuoi dati e guarda cosa funziona per te.