• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mongodb] Python - MongoDB Find (데이터 찾기)

11697  

목차

  1. find_one() 메서드 - collection에서 1개 데이터 찾기
  2. find() 메서드 - collection에서 여러 데이터 가져오기
  3. 일부 컬럼의 데이터만 가져오기
  4. 일부 컬럼 제외 시, 에러 발생 경우

 

MongoDB :  find(), find_one() 메서드로 컬렉션에서 데이터 찾음.
cf. MySQL : SELECT 문 사용해, 테이블에서 데이터를 찾음 .
 

find_one() 메서드 - collection에서 1개 데이터 찾기

find_one() 메서드 이용.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

x = mycol.find_one()

print(x)


결과값: {'_id': 1, 'mb_name': 'AAA', 'mb_level': '1'}

 

find() 메서드 - collection에서 여러 데이터 가져오기

find() 메서드 이용.


1.  

선택 항목의 모든 항목을 반환.

 

2.

find()메서드의 첫 번째 매개변수 는 쿼리 객체임. 

이 예에서는 컬렉션의 모든 문서를 선택하는 빈 쿼리 개체를 사용.

 

3.

find() 메서드에 매개변수 없으면 MySQL의 SELECT * 와 동일한 결과 제공.

 


[예제]

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find():

  print(x)

 

결과값:

{'_id': 1, 'mb_name': 'AAA', 'mb_level': '1'}

{'_id': 2, 'mb_name': 'BBB', 'mb_level': '2'}

...

 

일부 컬럼의 데이터만 가져오기

 

1.

find() 메서드의 두 번째 매개변수는 컬럼 출력 여부 결정 객체임.

※ 값이 0인 컬럼 경우 : 출력 X

※ 값이 1인 컬럼 경우 : 출력 O

 

2.

이 매개 변수는 선택 사항이며, 생략 시 모든 필드가 결과에 포함.

 

3.

동일 객체에서 0과 1 값을 모두 지정 시 에러 발생. 
(단, 필드 중 하나가 _id 필드 인 경우엔 괜찮음.)
 
4. 
값이 0인 필드 명시한 경우, 다른 모든 필드는 묵시적으로 1 가짐.
※ 그 반대 경우도 마찬가지.

 


[정상 예제1] _id 컬럼 출력 제외.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "_id": 0, "mb_name": 1, "mb_level": 1 }):

  print(x) 

 

결과값:

{'mb_name': 'AAA', 'mb_level': '1'}

{'mb_name': 'BBB', 'mb_level': '2'}

...


[정상 예제2] mb_level 컬럼 출력 제외.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "mb_level": 0 }):

  print(x)

 

결과값:

{'_id': 1, 'mb_name': 'AAA'}

{'_id': 2, 'mb_name': 'BBB'}

...

 


[정상 예제3] _id와 mb_level 컬럼 출력 제외

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, {"_id": 0,  "mb_level": 0 }):

  print(x)

 

결과값:

{'mb_name': 'AAA'}

{'mb_name': 'BBB'}

... 


[정상 예제4] _id 컬럼 출력 제외.

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, {"_id": 0}):

  print(x)

 

결과값:

{'mb_name': 'AAA', 'mb_level': '1'}

{'mb_name': 'BBB', 'mb_level': '2'}

...

 

 

일부 컬럼 제외 시, 에러 발생 경우

 

동일한 객체에 0과 1 모두 지정하면 오류 발생.
단, 필드 중 하나가 _id 필드 인 경우엔 무방함.
 

 


[에러 예제1] _id 속성 아닌 다른 컬럼에 0과 1 지정.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "mb_name": 1, "mb_level": 0 }):

  print(x)

 

결과값: 에러 발생.


[에러 예제2] _id 속성 아닌 다른 컬럼에 0과 1 지정.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "mb_name": 0, "mb_level": 1 }):

  print(x)

 

결과값: 에러 발생.


[에러 예제3] _id 속성 아닌 다른 컬럼에 0과 1 지정.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "_id": 0, "mb_name": 0, "mb_level": 1 }):

  print(x) 

 

결과값: 에러 발생


[에러 예제4] _id 속성 아닌 다른 컬럼에 0과 1 지정.

 

import pymongo


myclient = pymongo.MongoClient('mongodb://localhost:27017/')

mydb = myclient['hz']

mycol = mydb["hz_member"]

for x in mycol.find({}, { "_id": 0, "mb_name": 1, "mb_level": 0 }):

  print(x)

 

결과값: 에러 발생.



분류 제목
module Python - random.normalvariate() 메서드 △ - 정규분포 (확률이론용) 기반 랜덤 …
module Python - random.vonmisesvariate() 메서드 △ - 폰미제스분포 (방향통계) 기반 랜…
module Python - random.paretovariate() 메서드 △ - 파레토분포 (확률이론) 기반 랜덤 부…
module Python - random.weibullvariate() 메서드 △ - 베이블분포 (통계) 기반 랜덤 부동…
module Python - requests 모듈 메서드 종류 (※ 요청 모듈)
module Python - requests.delete() 메서드 - 지정 URL에 DELETE 요청 보냄. (= de…
module Python - requests.get() 메서드 - 지정 URL에 GET 요청 보냄. (= get메서드 =…
module Python - requests.head() 메서드 - 지정 URL에 HEAD 요청 보냄. (= head메서…
module Python - requests.patch() 메서드 △ - 지정 URL에 PATCH 요청 보냄. (= pa…
module Python - requests.post() 메서드 -
module Python - requests.put() 메서드 △ - 지정 URL에 PUT 요청 보냄. (= put메서드…
module Python - requests.request() 메서드 △ - 지정 메서드의 요청을 지정 URL로 보냄. …
function Python - abs() 함수 ★ - 숫자의 절대값 반환. (= abs함수 = 앱스함수/에이비에스함수/앱솔…
function Python - all() 함수 - 반복 가능 객체의 요소가 모두 True인지 체크. (= all함수 = 올…
function Python - any() 함수 - 반복 가능 객체의 요소가 하나라도 True인지 체크. (= any함수 =…
function Python - ascii() 함수 - 객체의 읽기 가능 버전 반환. (= ascii함수 = 아스키함수)
function Python - bin() 함수 - 정수의 이진수 값 반환. (= bin함수 = 빈함수/바이너리함수)
function Python - bool() 함수 ★ - 객체의 참거짓 반환. (= 참인지 거짓인지 판별 = bool함수 =…
function Python - bytearray() 함수 - 바이트 배열 생성. (= bytearray함수 = 바이트어레이…
function Python - bytes() 함수 - 바이트 객체 반환. (= bytes함수= 바이츠함수)
5/24
목록
찾아주셔서 감사합니다. Since 2012