sql >> Databasteknik >  >> NoSQL >> MongoDB

Finns det en MongoDB maximal bson-storlek?

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.



  1. mongoose aggregat hur man mappar flera samlingar till en Array

  2. Hantering av övergående nätverksfel med StackExchange.Redis

  3. Fråga efter dokument som har ett internt underfält med ett givet värde

  4. Hitta största dokumentstorlek i MongoDB