Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

특정 MongoDB 컬렉션의 레코드 수를 제한하는 방법이 있습니까?

<시간/>

예, 최대 크기와 함께 capped 매개변수를 사용할 수 있습니다. 다음은 구문입니다 -

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

먼저 capped:true −

를 사용하여 컬렉션을 생성해 보겠습니다.
> db.createCollection("limitTheNumberOfRecordsDemo",{capped:true,size:200024,max:3})
{ "ok" : 1 }

이제 문서로 컬렉션을 만들 것입니다 -

> 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")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. 위의 최대 크기로 상한선을 설정했기 때문에 여기에서는 위 컬렉션에서 3개의 레코드만 가져옵니다. -

> db.limitTheNumberOfRecordsDemo.find();

이것은 다음과 같은 출력을 생성합니다 -

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