sql >> Databasteknik >  >> NoSQL >> MongoDB

Sätt gränser för mongo db-samling

Detta kan enkelt uppnås med Capped Collections i mongodb.kan du sätta en gräns för antalet dokument, så i ditt fall kan du ställa in maximalt antal dokument till 1 enligt nedan:

db.createCollection("numbers", { capped : true, size:4000,  max : 1 } )

Om du också vill ställa in din samling som begränsat från mongoose-schema, kan du göra det med ett begränsat alternativ enligt följande:

var numbersSchema = new mongoose.Schema({
  seconds: Number
},{ capped : true, size:4000,  max : 1 })

Denna samling kommer alltid att innehålla endast ett dokument som kan uppdateras. Observera att dokumenten när de väl har infogats i samlingar med tak inte kan raderas . Så detta löser även ditt raderingsproblem.

Även size alternativ som du behöver ange, kan vara vilket positivt heltalsvärde som helst, som kommer att konverteras internt av mongo till ett minimum av 4096 bytes , eller närmaste multipel av 256.

VIKTIGT:

Källa:MONGODB-dokument

Dessutom, om du vill ställa in min- eller max-värdet till sekunder, kan du alltid använda mongoose min- max valideringar. Så följande schema borde fungera för dig.
var numbersSchema = new mongoose.Schema({
  seconds: { type: Number, min: 60 }
},{ capped : true, size:4000,  max : 1 })



  1. Hur löser jag SQLdecode-fel när du migrerar modeller i django?

  2. Ställ in lagringsplatsen för MongoDB installerad på AWS EC2 Instance till EBS-lagring. Och hur återställer jag den efter att instans har stoppats/avslutats?

  3. Få alla nycklar i Redis-databasen med python

  4. mongodb db.collection.find({}) gör ingenting efter .limit(101)