Computer >> Máy Tính >  >> Lập trình >> MongoDB

Có cách nào để giới hạn số lượng bản ghi trong một bộ sưu tập MongoDB nhất định không?

Có, bạn có thể sử dụng thông số giới hạn cùng với kích thước tối đa. Sau đây là cú pháp -

db.createCollection("yourCollectionName",{capped:true,size:yourSizeInBytes,max:howManyRecordsYouWant})

Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với giới hạn:true -

> db.createCollection("limitTheNumberOfRecordsDemo",{capped:true,size:200024,max:3})
{ "ok" : 1 }

Bây giờ chúng tôi sẽ tạo một bộ sưu tập với các tài liệu -

> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"James Brown"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e601b50a6c6dd317adad")
}
> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"Sam Williams"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e60bb50a6c6dd317adae")
}
> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"David Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e612b50a6c6dd317adaf")
}
> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"Carol Taylor"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e61ab50a6c6dd317adb0")
}
> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"Adam Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e649b50a6c6dd317adb1")
}
> db.limitTheNumberOfRecordsDemo.insertOne({"ClientName":"John Doe"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd9e64fb50a6c6dd317adb2")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Ở đây, bạn sẽ chỉ nhận được 3 bản ghi từ bộ sưu tập trên vì chúng tôi đã đặt giới hạn với kích thước tối đa ở trên -

> db.limitTheNumberOfRecordsDemo.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5cd9e61ab50a6c6dd317adb0"), "ClientName" : "Carol Taylor" }
{ "_id" : ObjectId("5cd9e649b50a6c6dd317adb1"), "ClientName" : "Adam Smith" }
{ "_id" : ObjectId("5cd9e64fb50a6c6dd317adb2"), "ClientName" : "John Doe" }