Python3으로 Mongodb를 작동하는 방법에 대한 간단하고 명확한 튜토리얼

黄舟
풀어 주다: 2017-05-28 11:17:57
원래의
1279명이 탐색했습니다.

이 글에서는 Python3 동작Mongodb간결하고 이해하기 쉬운 튜토리얼을 중심으로 데이터베이스 연결 방법과 데이터베이스 동작 방법을 자세히 소개합니다. 더 자세히 알아보세요.

데이터베이스에 연결

데이터베이스에 연결하려면 주소와 인터페이스를 제공해야 합니다. 먼저 패키지를 가져와야 합니다.

from pymongo import MongoClient
conn = MongoClient('localhost',27017)
로그인 후 복사

물론, 다음과 같은 작성 방법을 사용할 수 있습니다.

conn = MongoClient('mongodb://localhost:27017/')
로그인 후 복사

데이터베이스 생성

mongodb는 미리 데이터베이스를 생성할 필요는 없고, 존재하는 것으로 확인되면 직접 사용합니다. 데이터베이스가 없으면 자동으로 생성됩니다.

db = conn.testdb
로그인 후 복사

위 명령문은 testdb 데이터베이스를 생성합니다. 단, 데이터 삽입이 없는 경우 관리 도구에서 해당 데이터베이스를 볼 수 없습니다(표시되지 않음).

데이터 삽입

우선, 첫 번째 단계는 데이터를 삽입하고 살펴보는 것입니다.

단일 레코드 삽입

from pymongo import MongoClient
conn = MongoClient('mongodb://localhost:27017/')
db = conn.testdb
db.col.insert({"name":'yanying','province':'江苏','age':25})
로그인 후 복사

참고: 다음 작업에서는 데이터베이스 연결 작업이 무시되며 핵심 코드가 직접 작성됩니다.

Python 콘솔에서는 아무 일도 일어나지 않습니다. 이것이 바로 성공을 의미합니다. 관리 도구를 사용하여 데이터베이스 기록을 확인하세요. 여기에는 데이터가 포함되어 있습니다.

다중 레코드 삽입

Mongodb는 한 번에 여러 데이터 조각을 삽입할 수도 있습니다.

db.col.insert([
 {"name":'yanying','province':'江苏','age':25},
 {"name":'张三','province':'浙江','age':24},
 {"name":'张三1','province':'浙江1','age':25},
 {"name":'张三2','province':'浙江2','age':26},
 {"name":'张三3','province':'浙江3','age':28},
])
로그인 후 복사

Querydata

이제 방금 삽입한 데이터를 쿼리하겠습니다.

단일 쿼리

find_one()을 사용하여 레코드를 쿼리할 수 있습니다.

db.col.find_one()
로그인 후 복사

위 명령문은 mongodb 레코드를 쿼리할 수 있습니다. 레코드의 추가 _id는 Mongodb에서 자동으로 생성된 고유 값입니다.

코드 복사 코드는 다음과 같습니다.

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
로그인 후 복사
로그인 후 복사

다음 작업에 대한 일부 데이터를 삽입해 보겠습니다. (수만 단어 생략)

전체 쿼리

모든 레코드를 쿼리해야 하는 경우 db.col.find()를 사용할 수 있지만 찾은 것은 결과 리소스 집합입니다.

모든 기록을 나열하려면 for를 사용할 수 있습니다.

for item in db.col.find():
 print(item)
로그인 후 복사

이렇게 하면 모든 기록을 얻을 수 있습니다.

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
{'_id': ObjectId('592550e5d92fac0b8c449f87'), 'name': 'zhangsan', 'province': '北京', 'age': 29}
{'_id': ObjectId('592550f6d92fac3548c20b1a'), 'name': 'lisi', 'province': '上海', 'age': 22}
{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻', 'province': '广东', 'age': 30}
로그인 후 복사

조건부 쿼리

쿼리 조건을 매개변수로 삽입하면 데이터를 필터링할 수 있습니다.

for item in db.col.find({'name':"yanying"}):
 print(item)
로그인 후 복사

쿼리 결과

코드는 다음과 같습니다.

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
로그인 후 복사
로그인 후 복사

물론 특정 값보다 작은 레코드

for item in db.col.find({"age":{"$lt":25}}):
 print(item)
로그인 후 복사

또는 특정 값보다 큰 레코드

for item in db.col.find({"age":{"$gt":25}}):
 print(item)
로그인 후 복사

Statistical도 쿼리할 수 있습니다. query

위 코드는 모든 레코드 수를 가져오거나

db.col.find().count() // 4
로그인 후 복사

또는 조건을 추가할 수 있습니다.

db.col.find({"age":{"$gt":25}}).count() //2
로그인 후 복사

_id

_id를 기반으로 한 쿼리 레코드는 mongodb에서 자동으로 생성한 ID입니다. ObjectId를 사용하려면 유형을 변환해야 합니다.

이 메서드는 python3에서 제공되지만 라이브러리를 가져와야 합니다.

from bson.objectid import ObjectId
로그인 후 복사

이런 식으로 _id를 직접 사용해 쿼리할 수 있습니다.

collection.find_one({'_id':ObjectId('592550e5d92fac0b8c449f87')})
로그인 후 복사

결과 정렬

정렬해야 할 필드를 sort 메서드에 넣기만 하면 됩니다. Mongodb는 기본적으로 오름차순으로 설정되어 있습니다

db.col.find().sort("age")
로그인 후 복사

. 하지만 일부 매개변수를 추가하여 정렬 방법을 변경할 수도 있습니다. 예를 들어 역순이지만 pymongo 라이브러리를 먼저 가져와야 합니다.

import pymongo
db.col.find().sort("UserName",pymongo.DESCENDING)
로그인 후 복사

오름차순으로 만들 수도 있지만 이것이 기본값입니다.

for item in db.col.find().sort('age',pymongo.ASCENDING):
 print(item)
로그인 후 복사

Updatedata

데이터 업데이트는 매우 간단합니다. 업데이트해야 하는 조건과 데이터가 필요합니다.

코드를 복사할 수 있습니다. 코드는 다음과 같습니다.

db.col.update({'_id':ObjectId('59255118d92fac43dcb1999a')},{'$set':{'name':'王二麻33333'}})
로그인 후 복사

결과는 다음과 같습니다. Wang Erma는 Wang Erma 33333

코드는 다음과 같습니다.

{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻33333', 'province': '广东', 'age': 30}
로그인 후 복사

Deletedata

remove() 메소드를 사용하여 데이터를 삭제합니다. 메소드에 조건이 있으면 지정된 조건 데이터를 삭제하고, 그렇지 않으면 모두 삭제합니다.

이름이 Wang Erma 33333인 사용자를 삭제합니다.

db.col.remove({'name':'王二麻33333'})
로그인 후 복사

모든 데이터 삭제(주의해서 사용)

db.col.remove()
로그인 후 복사

위 내용은 Python3으로 Mongodb를 작동하는 방법에 대한 간단하고 명확한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿