1. 程式人生 > 實用技巧 >根據_id 更新查詢mongo 資料

根據_id 更新查詢mongo 資料

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