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

[mongodb] Python - MongoDB Insert (데이터 삽입)

5634  

목차

  1. collection에 데이터 입력
  2. Collection에 document 1개 입력
  3. _id 필드 - 데이터의 고유 색인번호
  4. Collection에 document 다수 입력
  5. 지정 _id로 Collection에 document 여러 개 입력 ★

 

collection에 데이터 입력

 

1. 

데이터 입력은 collection 객체의 아래 메서드 이용.

insert_one() 메서드 : 컬렉션에 문서 1개 삽입.
insert_many() 메서드 : 컬렉션에 문서 다수 삽입.

※ 참고
MongoDB의 document(문서)는 MySQL의 recode(레코드)에 대응.
 
2.
insertOne()메소드의 첫 번째 매개변수는 삽입하려는 문서에 있는 각 필드의 이름과 값을 포함하는 객체임. 또한 오류 또는 삽입 결과로 작업할 수있는 콜백함수를 사용.


 

Collection에 document 1개 입력

※ collection 객체의 insert_one() 메서드 이용.

 

import pymongo


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

mydb = myclient['hz']

mycol = mydb["hz_member"]

mydict = { "mb_name": "homzzang", "mb_level": "10" }

x = mycol.insert_one(mydict)

print(x)

 

결과값: <pymongo.results.InsertOneResult object at 0x00000210568CC5C0> 

참고 : 없는 컬렉션에 문서 삽입 시, MongoDB가 컬렉션을 자동 생성.
 

_id 필드 - 데이터의 고유 색인번호


1.
insert_one()
 메서드는 InsertOneResult 객체 반환.
InsertOneResult 객체엔 문서 고유 ID인 insert_id 속성 내장.

 

insert_many() 메서드는 InsertManyResult 객체 반환.
InsertManyResult 객체엔 문서 고유 ID인 insert_ids 속성 내장.

 

2.

_id 필드 지정 안 하면 MongoDB가 필드 추가 후, 각 문서에 고유 ID 할당.

※ 위 예제 경우, id필드 지정 없어, MongoDB가 고유 _id 할당.

※ 직접 지정 시, _id필드 값은 각 문서에 고유하게 설정해야 함. 

 


[예제]

 

import pymongo


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

mydb = myclient['hz']

mycol = mydb["hz_member"]

mydict = { "mb_name": "sinbi", "mb_level": "9" }

x = mycol.insert_one(mydict)

print(x.inserted_id)

 

결과값: 5fb337cb224168c056ffc3f9 

 

Collection에 document 다수 입력

※ collection 객체의 insert_many() 메서드 이용.

 

insert_many() 메소드 의 첫 번째 매개 변수는 삽입하려는 데이터가 있는 dictionary 포함하는 List

 


[예제] 

 

import pymongo


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

mydb = myclient['hz']

mycol = mydb["hz_member"]

mylist = [

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

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

    {"mb_name": 'CCC', "mb_level": '2'},

    {"mb_name": 'DDD', "mb_level": '3'},

    {"mb_name": 'EEE', "mb_level": '3'},

    {"mb_name": 'FFF', "mb_level": '3'},

    {"mb_name": 'GGG', "mb_level": '4'},

    {"mb_name": 'HHH', "mb_level": '4'},

    {"mb_name": 'III', "mb_level": '4'},

    {"mb_name": 'JJJ', "mb_level": '4'},

    {"mb_name": 'KKK', "mb_level": '5'},

    {"mb_name": 'LLL', "mb_level": '5'},

    {"mb_name": 'MMM', "mb_level": '5'},

    {"mb_name": 'NNN', "mb_level": '5'}

]


x = mycol.insert_many(mylist)

print(x.inserted_ids)


결과값: 

[ObjectId('5fb3520abec26d5d8a5f852a'), ObjectId('5fb3520abec26d5d8a5f852b'), ObjectId('5fb3520abec26d5d8a5f852c'), ObjectId('5fb3520abec26d5d8a5f852d'), ObjectId('5fb3520abec26d5d8a5f852e'), ObjectId('5fb3520abec26d5d8a5f852f'), ObjectId('5fb3520abec26d5d8a5f8530'), ObjectId('5fb3520abec26d5d8a5f8531'), ObjectId('5fb3520abec26d5d8a5f8532'), ObjectId('5fb3520abec26d5d8a5f8533'), ObjectId('5fb3520abec26d5d8a5f8534'), ObjectId('5fb3520abec26d5d8a5f8535'), ObjectId('5fb3520abec26d5d8a5f8536'), ObjectId('5fb3520abec26d5d8a5f8537')]


지정 _id로 Collection에 document 여러 개 입력 ★

※ collection 객체의 insert_many() 메서드 이용.

 

import pymongo


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

mydb = myclient['hz']

mycol = mydb["hz_member"]

mylist = [

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

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

    { "_id": 3,  "mb_name": 'CCC', "mb_level": '2'},

    { "_id": 4,  "mb_name": 'DDD', "mb_level": '3'},

    { "_id": 5,  "mb_name": 'EEE', "mb_level": '3'},

    { "_id": 6,  "mb_name": 'FFF', "mb_level": '3'},

    { "_id": 7,  "mb_name": 'GGG', "mb_level": '4'},

    { "_id": 8,  "mb_name": 'HHH', "mb_level": '4'},

    { "_id": 9,  "mb_name": 'III', "mb_level": '4'},

    { "_id": 10,  "mb_name": 'JJJ', "mb_level": '4'},

    { "_id": 11,  "mb_name": 'KKK', "mb_level": '5'},

    { "_id": 12,  "mb_name": 'LLL', "mb_level": '5'},

    { "_id": 13,  "mb_name": 'MMM', "mb_level": '5'},

    { "_id": 14,  "mb_name": 'NNN', "mb_level": '5'}

]


x = mycol.insert_many(mylist)

print(x.inserted_ids)


결과값: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012