MongoDB操作文件
阿新 • • 發佈:2022-04-03
1、連線方式
1
# 無密碼連線
import pymongo
mongo_client = pymongo.MongoClient('127.0.0.1', 27017)
# 有密碼連線
import pymongo
mongo_client = pymongo.MongoClient('127.0.0.1', 26666)
mongo_auth = mongo_client.admin #或 mongo_client['admin'] admin為authenticationDatabase
mongo_auth.authenticate('使用者名稱', '密碼')
2
#無密碼連線 import pymongo mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017') #有密碼連線 import pymongo import urllib.parse mongo_username = urllib.parse.quote_plus('你的使用者名稱') mongo_password = urllib.parse.quote_plus('密碼') mongo_client = pymongo.MongoClient('mongodb://%s:%[email protected]:26666' % (mongo_username, mongo_password)) print(mongo_client.server_info()) #判斷是否連線成功
2、獲取Database和Collection
2.1
mongo_db = mongo_client['你的database']
mongo_collection = mongo_db['你的collection']
2.2
mongo_db = mongo_client.你的database
mongo_collection = mongo_db.你的collection
3、CURD操作
增
3.1、插入單條資料insert_one()
info = { 'name' : 'Zarten', 'text' : 'Inserting a Document', 'tags' : ['a', 'b', 'c'], 'date' : datetime.datetime.now() } mongo_collection.insert_one(info)
3.2、插入多條資料insert_many()
info_1 = { 'name' : 'Zarten_1', 'text' : 'Inserting a Document', 'tags' : ['a', 'b', 'c'], 'date' : datetime.datetime.now() } info_2 = { 'name' : 'Zarten_2', 'text' : 'Inserting a Document', 'tags' : [1, 2, 3], 'date' : datetime.datetime.now() } insert_list = [info_1, info_2] mongo_collection.insert_many(insert_list)
3.3、插入字串型別的時間
在插入字串時間時,mongodb會自動轉成了 ISOdate型別,若需要時間在mongdb也是字串型別,需要這樣操作
datetime.datetime.now().isoformat()
刪
3.4、刪除一條資料delete_one()
刪除一條資料。若刪除條件相同匹配到多條資料,預設刪除第一條
mongo_collection.delete_one({'text' : 'a'})
3.5、刪除多條資料delete_many()
刪除滿足條件的所有資料
mongo_collection.delete_many({'text' : 'a'})
改
3.6、更新單條資料update_one()
只會更新滿足條件的第一條資料
update_one
(filter,update,upsert=False,bypass_document_validation=False,collation=None,array_filters=None,session=None)
- 第一個引數 filter:更新的條件
- 第二個引數 update : 更新的內容,必須用$操作符
- 第三個引數 upsert : 預設False。若為True,更新條件沒找到,則插入更新的內容
info = {
'name': '桃子 ',
'text': 'peach',
'tags': [1, 2, 3],
'date': datetime.datetime.now()
}
update_condition = {'name' : 'Zarten_2'} #更新的條件,也可以為多個條件
#更新條件多個時,需要同時滿足時才會更新
# update_condition = {'name' : 'Pear',
# 'text' : '梨子'}
mongo_collection.update_one(update_condition, {'$set' : info})
3.7、更新多條資料update_many
更新滿足條件的所有資料
info = {
'name': 'Zarten',
'text': 'a',
'tags': [1, 2, 3],
'date': datetime.datetime.now()
}
update_condition = {'text' : 'a'} #更新的條件
#更新條件多個時,需要同時滿足時才會更新
# update_condition = {'name' : 'Pear',
# 'text' : '梨子'}
mongo_collection.update_many(update_condition, {'$set' : info})
3.7、更新時,若無滿足條件,則插入資料
通過設定upsert為True即可
info = {
'name': 'Banana',
'text': '香蕉',
'tags': [1, 2, 3],
'date': datetime.datetime.now()
}
update_condition = {'text' : 'a'} #更新的條件
#更新條件多個時,需要同時滿足時才會更新
# update_condition = {'name' : 'Pear',
# 'text' : '梨子'}
mongo_collection.update_many(update_condition, {'$set' : info}, upsert= True)
查