_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 是作為一個對象存在的