문서 찾기
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
필드를 명시적으로 제외하고title
및imdb
객체 (및 포함된 필드)만 명시적으로 포함하는 프로젝션입니다.
참고
이 예시를 사용하여 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 } }