python 백 엔 드: MongoDB 데이터베이스
11255 단어 MongoDB
1. 프로필
2. pip 설치
3. 데이터베이스 만 들 기
4. 데이터베이스 존재 여부 판단
5. 집합 만 들 기 (MongoDB 에 데이터 시트 개념 없 이 집합 이 라 고 통칭)
6. 집합 존재 여부 판단
7. 추가, 삭제, 수정, 검사 의 조작
데이터 추가
2. 조회 데이터
3. 데이터 수정
4. 데이터 삭제
시계
1. 프로필
MongoDB 는 현재 가장 유행 하 는 NoSQL 데이터베이스 중 하나 로 사용 되 는 데이터 형식 BSON (JSON 유사) 이다.
2. pip 설치
pymongo 설치:
pip install pymongo
#
pip install pymongo==3.5.1
# pymongo
pip install --upgrade pymongo
3. 데이터베이스 만 들 기
데이터 베 이 스 를 만 들 려 면 MongoClient 대상 을 사용 하고 연 결 된 URL 주소 와 만 들 데이터베이스 이름 을 지정 해 야 합 니 다.
예:
import pymongo
myclient=pymongo.MongoClient("mongodb://localhost:27017/")
mydb=myclient["runoobdb"]
# :MongoDB , , , ( )
( ), 。
4. 데이터베이스 존재 여부 판단
import pymongo
myclient=pymongo.MongoClient("mongodb://localhost:27017/")
dblist=myclient.list_database_names()
if 'ruboob' in dblist:
print(' ')
5. 집합 만 들 기 (MongoDB 에 데이터 시트 개념 없 이 집합 이 라 고 통칭)
MongoDB 의 집합 은 SQL 의 표 와 유사 하 며 데이터베이스 대상 을 사용 하여 집합 을 만 듭 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoob']
mycol=mydb['sites']
# ( ) ( ), 。
6. 집합 존재 여부 판단
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
collist=mydb.list_collection_names()
if 'sites' in collist:
print(' !')
7. 추가, 삭제, 수정, 검사 의 조작
데이터 추가
단일 데이터 삽입 집합: 인터페이스 insert 호출one (), 매개 변 수 는 사전 형식 입 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
mydict={'name':'RUNOOB','url':'www.baidu.com'}
x=mycol.insert_one(mydict)
print(x)
# InsertOneResult , inserted_id, id 。
print(x.inserted_id)
집합 에 여러 문 서 를 삽입 하여 insert 사용many () 인터페이스, 인 자 는 사전 목록 입 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
mylist = [
{ "name": "Taobao", "alexa": "100", "url": "https://www.taobao.com" },
{ "name": "QQ", "alexa": "101", "url": "https://www.qq.com" },
{ "name": "Facebook", "alexa": "10", "url": "https://www.facebook.com" },
{ "name": " ", "alexa": "103", "url": "https://www.zhihu.com" },
{ "name": "Github", "alexa": "109", "url": "https://www.github.com" }
]
x=mycol.insert_many(mylist)
# _id
print(x.inserted_ids)
삽입 지정id 의 여러 문서
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['site2']
mylist = [
{ "_id": 1, "name": "RUNOOB", "cn_name": " "},
{ "_id": 2, "name": "Google", "address": "Google "},
{ "_id": 3, "name": "Facebook", "address": " "},
{ "_id": 4, "name": "Taobao", "address": " "},
{ "_id": 5, "name": "Zhihu", "address": " "}
]
x=mycol.insert_many(mylist)
# _id
print(x.inserted_ids)
2. 조회 데이터
데이터 조회: find 사용one () 방법 으로 집합 중의 데 이 터 를 조회 합 니 다. 예 를 들 어 sites 문서 의 첫 번 째 데 이 터 를 조회 합 니 다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
mycol = mydb["sites"]
x = mycol.find_one()
print(x)
#
{'_id': ObjectId('5b23696ac315325f269f28d1'), 'name': 'RUNOOB', 'alexa': '10000',
'url': 'https://www.runoob.com'}
집합 에 있 는 모든 데 이 터 를 조회 합 니 다: find () 방법 은 집합 에 있 는 모든 데 이 터 를 조회 할 수 있 습 니 다. SQL 의 select * 작업 과 유사 합 니 다.
예:
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
for x in mycol.find():
print(x)
#
{'_id': ObjectId('5b23696ac315325f269f28d1'), 'name': 'RUNOOB', 'alexa': '10000', 'url': 'https://www.runoob.com'}
{'_id': ObjectId('5b2369cac315325f3698a1cf'), 'name': 'Google', 'alexa': '1', 'url': 'https://www.google.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb6'), 'name': 'Taobao', 'alexa': '100', 'url': 'https://www.taobao.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb7'), 'name': 'QQ', 'alexa': '101', 'url': 'https://www.qq.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb8'), 'name': 'Facebook', 'alexa': '10', 'url': 'https://www.facebook.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb9'), 'name': ' ', 'alexa': '103', 'url': 'https://www.zhihu.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbba'), 'name': 'Github', 'alexa': '109', 'url': 'https://www.github.com'}
지정 한 필드 의 데 이 터 를 조회 합 니 다: find () 방법 을 사용 하 시 겠 습 니까? 되 돌아 올 필드 를 1 로 설정 하 시 겠 습 니까?
예:
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
for x in mycol.find({},{'_id':0,'name':1,'alexa':1})
print(x)
#
{'name': 'RUNOOB', 'alexa': '10000'}
{'name': 'Google', 'alexa': '1'}
{'name': 'Taobao', 'alexa': '100'}
{'name': 'QQ', 'alexa': '101'}
{'name': 'Facebook', 'alexa': '10'}
{'name': ' ', 'alexa': '103'}
{'name': 'Github', 'alexa': '109'}
주의: 제외id, 분 노 는 한 대상 에서 0 과 1 을 동시에 지정 할 수 있 습 니 다. 한 필드 가 0 이면 다른 것 은 모두 1 이 고 반대로 도 마찬가지 입 니 다.
예 를 들 어 alexa 필드 를 제외 하고 모두 되 돌려 줍 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
for x in mycol.find({},{'alexa':0})
print(x)
#
{'_id': ObjectId('5b23696ac315325f269f28d1'), 'name': 'RUNOOB', 'url': 'https://www.runoob.com'}
{'_id': ObjectId('5b2369cac315325f3698a1cf'), 'name': 'Google', 'url': 'https://www.google.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb6'), 'name': 'Taobao', 'url': 'https://www.taobao.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb7'), 'name': 'QQ', 'url': 'https://www.qq.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb8'), 'name': 'Facebook', 'url': 'https://www.facebook.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbb9'), 'name': ' ', 'url': 'https://www.zhihu.com'}
{'_id': ObjectId('5b236aa9c315325f5236bbba'), 'name': 'Github', 'url': 'https://www.github.com'}
지정 한 조건 조회: find () 에 파 라 메 터 를 설정 하여 데 이 터 를 걸 러 냅 니 다.
import pymongo
myclient=pymongo.MongoClient("mongdb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
query={"name":"RUNOOB"}
result=mycol.find(query)
for x in resutl:
print(x)
#
{'_id': ObjectId('5b23696ac315325f269f28d1'), 'name': 'RUNOOB', 'alexa': '10000', 'url': 'https://www.runoob.com'}
지정 한 항목 을 되 돌려 줍 니 다: limit () 을 사용 합 니 다. 예 를 들 어 mycol.find().limit(3)
정규 표현 식 조회: name 필드 에서 이니셜 이 R 인 데 이 터 를 읽 을 때 정규 표현 식 수정자 조건 은 {"$regex": "^ R"} 입 니 다.
query={'name':{'$regex':'^R'}}
result=mycol.find(query)
for x in result:
print(x)
3. 데이터 수정
단일 데이터 수정, update 사용one() 인터페이스, 첫 번 째 일치 하 는 데 이 터 를 조회 하고 수정 합 니 다.예 를 들 어 alexa 필드 의 값 을 10000 에서 12345 로 바 꿉 니 다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
mycol = mydb["sites"]
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.update_one(myquery, newvalues)
# "sites"
for x in mycol.find():
print(x)
여러 데이터 수정, update 사용many (), F 로 시작 하 는 name 필드 를 찾 고 찾 은 alexa 필드 를 123 으로 변경 합 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb:localhost:27107/')
mydb=myclient['runoob']
mycol=mydb['sites']
myquery={'name':{'$regex':'^F'}}
newvalues={'$set':{'alexa':'123'}}
x=mycol.update_many(myquery,newvalues)
print(x.modified_count,' ')
4. 데이터 삭제
단일 데 이 터 를 삭제 하고 첫 번 째 일치 하 는 대상 을 조회 하고 삭제 합 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb:localhost/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
myquery={'name':'Taobao'}
mycol.delete_one(myquery)
#
for x in mycol.find():
print(x)
여러 문 서 를 삭제 하고 delete 사용 하기name 필드 에서 F 로 시작 하 는 문 서 를 삭제 하 는 등 정규 조 회 를 사용 하고 삭제 합 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
myquery={'name':{'$regex':'^F'}}
x=mycol.find_many(mysquery)
print(x.delete_count,' ')
집합 에 있 는 모든 문 서 를 삭제 합 니 다. 필드 를 지정 하지 않 고 {} 로 대체 하면 됩 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
mycol.delete_many({})
print(x.deleted_count,' ')
결합 을 삭제 하고 drop () 인 터 페 이 스 를 사용 하면 됩 니 다.
import pymongo
myclient=pymongo.MongoClient('mongodb://localhost:27107/')
mydb=myclient['runoobdb']
mycol=mydb['sites']
mycol.drop()
시계
조작 방식 은 my sql 과 유사 합 니 다.
#
use runoobdb;
#
show tables;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Heroku에서 mLab add-on 종료로 Mongo DB atlas로 마이그레이션Heroku의 Add-on으로 제공된 mLab MongoDB가 2020/11/10 종료됩니다. 요 전날 mLab이 MongoDB, Inc.에 인수되었기 때문에 동반됩니다. errbit 등을 Heroku에서 호스팅하는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.