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

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

5733  

목차

  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] 



분류 제목
mongodb Python - MongoDB Limit (데이터 출력개수)
module Python - random 모듈 메서드 종류
module Python - random.seed() 메서드 - 난수 생성기 초기화 (= seed메서드 = 시드)
module Python - random.getstate() 메서드 - 난수 생성기 현재 상태 반환. (= getstat…
module Python - random.setstate() 메서드 - 난수 생성기 상태 복원. (= setstate메서…
module Python - random.getrandbits() 메서드 ★ - 지정 bit 크기의 정수 반환. (= g…
module Python - random.randrange() 메서드 ★★ - 지정 범위 안에서 정수형 난수 반환. (=…
module Python - random.randint() 메서드 ★★ - 지정 범위 안 int형 난수 생성. (= ra…
module Python - random.choice() 메서드 ★★ - 요소 랜덤 반환. (= choice메서드 = 초…
module Python - random.choices() 메서드 - 가중치 반영해 랜덤 요소 반환. (= choices…
module Python - random.shuffle() 메서드 ★★ - 요소 순서 뒤섞기. (= 순서 랜덤 = shu…
module Python - random.sample() 메서드 ★ - 일부 요소 랜덤 선택. (= sample메서드 =…
module Python - random.random() 메서드 ★ - 0 ~ 1 사이 부동소수 랜덤 반환. (= ran…
module Python - random.uniform() 메서드 ★ - 지정 범위 안 랜덤 부동소수 반환. (= uni…
module Python - random.triangular() 메서드 - 지정 범위 안 가중치 반영 랜덤 부동소수 반환…
module Python - random.betavariate() 메서드 △ - 베타분포 (통계용) 기반 0~1 사이 랜…
module Python - random.expovariate() 메서드 △ - 지수분포 (통계용) 기반 랜덤 부동소수 …
module Python - random.gammavariate() 메서드 △ - 감마분포 (통계용) 기반 랜덤 부동소수…
module Python - random.gauss() 메서드 △ - 가우스분포 (확률이론용) 기반 랜덤 부동소수 반환.
module Python - random.lognormvariate() 메서드 △ - 로그정규분포 (확률이론용) 기반 랜…
4/24
목록
찾아주셔서 감사합니다. Since 2012