이 글에서는 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를 기반으로 한 쿼리 레코드는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!