Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 Cursor(커서) 객체의 첫 번째 항목을 가져오는 방법

MongoDB 커서 객체의 첫 번째 항목 가져오기

네, 가능합니다. MongoDB에서 findOne() 메서드를 사용하면 커서(cursor) 객체의 첫 번째 항목을 간단하게 가져올 수 있습니다.

findOne() 기본 문법

db.yourCollectionName.findOne();

만약 커서 객체에서 조건에 맞는 단일 문서 하나만 가져오고 싶다면, 다음과 같이 조건을 함께 지정하면 됩니다.

db.yourCollectionName.findOne({yourCondition});

샘플 컬렉션 생성하기

실습을 위해 먼저 컬렉션을 생성하고 문서를 삽입해 보겠습니다. 다음은 문서가 포함된 컬렉션을 만드는 쿼리입니다.

> db.getFirstItemDemo.insertOne({"CustomerName":"Chris","CustomerAge":28});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c989059330fd0aa0d2fe4c1")
}
> db.getFirstItemDemo.insertOne({"CustomerName":"Larry","CustomerAge":26});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c989063330fd0aa0d2fe4c2")
}
> db.getFirstItemDemo.insertOne({"CustomerName":"Robert","CustomerAge":29});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c98906d330fd0aa0d2fe4c3")
}
> db.getFirstItemDemo.insertOne({"CustomerName":"David","CustomerAge":39});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c989081330fd0aa0d2fe4c4")
}

find()로 전체 문서 조회하기

다음은 find() 메서드를 사용해 컬렉션의 모든 문서를 출력하는 쿼리입니다.

> db.getFirstItemDemo.find().pretty();

위 쿼리를 실행하면 아래와 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5c989059330fd0aa0d2fe4c1"),
   "CustomerName" : "Chris",
   "CustomerAge" : 28
}
{
   "_id" : ObjectId("5c989063330fd0aa0d2fe4c2"),
   "CustomerName" : "Larry",
   "CustomerAge" : 26
}
{
   "_id" : ObjectId("5c98906d330fd0aa0d2fe4c3"),
   "CustomerName" : "Robert",
   "CustomerAge" : 29
}
{
   "_id" : ObjectId("5c989081330fd0aa0d2fe4c4"),
   "CustomerName" : "David",
   "CustomerAge" : 39
}

findOne()으로 첫 번째 항목 가져오기

이제 findOne() 메서드를 사용해 커서 객체의 첫 번째 항목을 가져와 보겠습니다.

> db.getFirstItemDemo.findOne();

실행 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5c989059330fd0aa0d2fe4c1"),
   "CustomerName" : "Chris",
   "CustomerAge" : 28
}

위 결과에서 볼 수 있듯이, 컬렉션에 가장 먼저 저장된 문서인 Chris의 정보가 반환되었습니다.

조건을 지정해 단일 문서 가져오기

조건을 추가하면 해당 조건과 일치하는 단일 문서만 가져올 수 있습니다. 다음은 CustomerAge가 39인 문서를 조회하는 쿼리입니다.

> db.getFirstItemDemo.findOne({"CustomerAge":39});

실행 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5c989081330fd0aa0d2fe4c4"),
   "CustomerName" : "David",
   "CustomerAge" : 39
}

정리

findOne() 메서드는 인자 없이 호출하면 컬렉션의 첫 번째 문서를 반환하고, 조건 객체를 인자로 전달하면 해당 조건에 일치하는 첫 번째 문서 하나만 반환합니다. 이처럼 findOne()을 활용하면 커서 객체에서 원하는 단일 문서를 손쉽게 조회할 수 있습니다.