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;

좋은 웹페이지 즐겨찾기