MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Задайте ограничения за събирането на mongo db

Това може лесно да се постигне с помощта на Ограничени колекции в mongodb.можете да зададете ограничение за броя документи, така че във вашия случай можете да зададете максимален брой документи на 1, както е показано по-долу:

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

Освен това, ако искате да зададете колекцията си като ограничена от схема на mongoose, можете да го направите, като използвате опцията за ограничение, както следва:

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

Тази колекция винаги ще съдържа само един документ, който може да бъде актуализиран. Имайте предвид, че документите, веднъж вмъкнати в ограничени колекции не могат да бъдат изтрити . Така че това решава и вашия проблем с изтриването.

Също size опцията, която трябва да посочите, може да бъде всяка положителна цяло число, която ще бъде преобразувана вътрешно от mongo до минимум 4096 bytes , или най-близкото кратно на 256.

ВАЖНО:

Източник:MONGODB документи

Освен това, ако искате да зададете минималната или максималната стойност на секундите, винаги можете да използвате mongoose min- макс. валидации. Така че следната схема трябва да работи за вас.
var numbersSchema = new mongoose.Schema({
  seconds: { type: Number, min: 60 }
},{ capped : true, size:4000,  max : 1 })



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да извърша upsert в Mongoose, търсейки вграден документ?

  2. ActionDispatch::Routing::RouteSet#call Rails 4.1 наистина бавно

  3. Не може да се десериализира PyMongo ObjectId от JSON

  4. Как работи операторът за актуализация $set в MongoDB

  5. Агрегирано поле на MongoDB в масив от обекти