Docs Menu
Docs Home
/ / /
Node.js
/ /

문서 찾기

collection.findOne() 메서드를 사용하여 컬렉션 에서 단일 문서 를 쿼리 할 수 있습니다. findOne() 메서드는 사용자가 제공하는 쿼리 문서 를 사용하여 컬렉션 에서 쿼리 와 일치하는 문서의 하위 집합만 일치시킵니다. 쿼리 문서 를 제공하지 않거나 빈 문서 를 제공하는 경우 MongoDB 는 컬렉션 의 모든 문서를 일치시킵니다. findOne() 작업은 일치하는 첫 번째 문서 만 반환합니다. MongoDB 쿼리에 대한 자세한 내용은 쿼리쿼리 에대한 문서를 참조하세요.

정렬프로젝션 과 같은 추가 쿼리 옵션을 정의하여 반환된 문서를 구성할 수도 있습니다. findOne 메서드의 두 번째 매개변수로 전달된 options 객체에 추가 옵션을 지정할 수 있습니다. 자세한 참고 문서는 collection.findOne()을 참조하세요.

findOne() 메서드를 사용하여 다음 환경에서 호스팅되는 배포서버에 Node.js 드라이버를 연결하고 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전입니다.

  • MongoDB Community: 소스 사용 가능하고, 무료로 사용할 수 있는 자체 관리형 MongoDB 버전

MongoDB Atlas에서 호스팅되는 배포를 위해 Atlas UI에서 문서를 찾는 방법에 대한 자세한 내용은 문서 생성, 보기, 업데이트 및 삭제를 참조하세요.

다음 스니펫은 movies collection에서 단일 문서를 찾습니다. 다음 매개 변수를 사용합니다:

  • 제목이 정확히 'The Room' 텍스트인 영화만 반환하도록 쿼리를 구성하는 쿼리 문서입니다.

  • 일치하는 문서를 등급별로 내림차순으로 정리하는 정렬로, 쿼리가 여러 문서와 일치하는 경우 반환되는 문서는 등급이 가장 높은 문서가 됩니다.

  • 반환된 문서에서 _id 필드를 명시적으로 제외하고 titleimdb 객체 (및 포함된 필드)만 명시적으로 포함하는 프로젝션입니다.

참고

이 예시를 사용하여 MongoDB 인스턴스에 연결하고 샘플 데이터가 포함된 데이터베이스와 상호 작용할 수 있습니다. MongoDB 인스턴스에 연결하고 샘플 데이터 세트를 로드하는 방법에 대해 자세히 알아보려면 사용 예제 가이드를 참조하세요.

import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection string.
const uri = "<connection string uri>";
const client = new MongoClient(uri);
async function run() {
try {
// Get the database and collection on which to run the operation
const database = client.db("sample_mflix");
const movies = database.collection("movies");
// Query for a movie that has the title 'The Room'
const query = { title: "The Room" };
const options = {
// Sort matched documents in descending order by rating
sort: { "imdb.rating": -1 },
// Include only the `title` and `imdb` fields in the returned document
projection: { _id: 0, title: 1, imdb: 1 },
};
// Execute query
const movie = await movies.findOne(query, options);
// Print the document returned by findOne()
console.log(movie);
} finally {
await client.close();
}
}
run().catch(console.dir);
import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection string.
const uri = "<connection string uri>";
const client = new MongoClient(uri);
interface IMDB {
rating: number;
votes: number;
id: number;
}
export interface Movie {
title: string;
year: number;
released: Date;
plot: string;
type: "movie" | "series";
imdb: IMDB;
}
type MovieSummary = Pick<Movie, "title" | "imdb">;
async function run(): Promise<void> {
try {
const database = client.db("sample_mflix");
// Specifying a Schema is always optional, but it enables type hinting on
// finds and inserts
const movies = database.collection<Movie>("movies");
const movie = await movies.findOne<MovieSummary>(
{ title: "The Room" },
{
sort: { rating: -1 },
projection: { _id: 0, title: 1, imdb: 1 },
}
);
console.log(movie);
} finally {
await client.close();
}
}
run().catch(console.dir);

앞의 예시를 실행하면 다음과 같은 출력이 표시됩니다.

{ title: 'The Room', imdb: { rating: 3.5, votes: 25673, id: 368226 } }

돌아가기

작업 찾기