Python MongoDB 검색

MongoDB에서 데이터를 검색하려면 find와 findOne 메서드를 사용합니다。

SELECT 문이 MySQL 데이터베이스의 테이블에서 데이터를 검색하는 것과 마찬가지로 사용됩니다。

일항 검색

MongoDB의 컬렉션에서 데이터를 선택하려면 다음과 같이 사용할 수 있습니다: find_one() 메서드。

find_one() 메서드는 선택된 첫 번째 일치 항목을 반환합니다。

예제

customers 컬렉션의 첫 번째 문서를 검색합니다:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

예제 실행

모든 항목 검색

MongoDB에서 테이블에서 데이터를 선택하려면 다음과 같이 사용할 수 있습니다: find() 메서드。

find() 메서드는 선택된 모든 일치 항목을 반환합니다。

find() 메서드의 첫 번째 파라미터는 query 객체입니다. 이 예제에서는 비어 있는 query 객체를 사용하여 컬렉션의 모든 문서를 선택합니다。

find() 메서드는 파라미터를 제공하지 않아 MySQL의 SELECT *와 같은 결과를 반환합니다。

예제

"customers" 컬렉션의 모든 문서를 반환하고 각 문서를 출력합니다:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

예제 실행

특정 필드만 반환

find() 결과에 포함된 필드를 설명하는 객체가 있는 파라미터는 메서드의 두 번째 파라미터입니다。

이 파라미터는 선택 사항입니다. 생략하면 모든 필드가 결과에 포함됩니다.

예제

이름과 주소만 반환하고, _ids는 반환하지 않습니다:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
  print(x)

예제 실행

0과 1 값을 동시에 지정할 수 없습니다. (除非其中一个字段是 _id 字段)。0 값을 지정한 필드가 있으면 다른 모든 필드의 값은 1이 되며, 반대도 마찬가지입니다:

예제

이 예제에서 "address"를 결과에서 제외합니다:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
  print(x)

예제 실행

예제

0과 1 값을 동시에 지정하면 오류가 발생합니다. (除非其中一个字段是 _id 字段):

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
  print(x)