根據_id 更新查詢mongo 資料
阿新 • • 發佈:2020-10-27
_id 是mongo 的物件,python從mongo中讀出來的資料型別是str 或者object 類
_id 是str型別時存在使用_id 更新資料失敗的情況
解決辦法 時匯入bson 裡面的ObjectId
import pandas as pd import pymongo from bson import ObjectId client = pymongo.MongoClient().history_event_old['time_info'] path = 'history_event_old.xlsx' df = pd.read_excel(path, keep_default_na=False) values= df.values for data in values: _id = data[0] print(_id) start_time = data[2] end_time = data[3] client.update_one({"_id": ObjectId(_id)}, {"$set": {"開始時間": start_time, '結束時間': end_time}})
bson模組
是一種類json的一種二進位制形式的儲存格式,簡稱Binary JSON,它和JSON一樣,支援內嵌的文件物件和陣列物件,但是BSON有JSON沒有的一些資料型別,如Date和BinData型別;
BSON有三個特點:輕量性、可遍歷性、高效性,但是空間利用率不是很理想
MongoDB使用了BSON這種結構來儲存資料和網路資料交換;
比如
這是MongoDB 中的一條記錄 也是 一個簡單的BSON結構體,其中每一個element都是由key/value對組成的
把這種格式轉化成文件這個概念(Document),因為BSON是schema-free的,所以在MongoDB中所對應的文件也有這個特徵 ;
Document可以巢狀 如 key: tagGroup marketing 是作為一個物件存在的