2
我使用pymongo(蟒蛇3.6與MLAB),我想更新我的集合中的所有文件。 在我的文檔,我已存儲這樣的數據:如何更新集合中的所有文件與pymongo
{
"_id": {
"$oid": "5981a77e1d41c81419b60414"
},
"Ticker": "GOOGL",
"Sector": "USTECH",
"Market": "NASDAQ",
"Data": [
{
"Date": "Jul 27, 2017",
"Price": "966.41",
"Open": "969.52",
"High": "969.52",
"Low": "963.50",
"Vol": "743.92K",
"Change%": "0.11"
},
{
"Date": "Jul 26, 2017",
"Price": "965.31",
"Open": "972.78",
"High": "973.95",
"Low": "960.23",
"Vol": "2.22M",
"Change%": "-0.38"
}]}
我要更新所有的日期,使他們看起來像這樣: 1997年1月6日,而不是1月6,1997年 我有這個代碼:
connection = MongoClient(link)
dbase = connection[db_name]
collection = dbase.historicals
client = collection.find()
if client:
collection.update({}, "$set" : {"Data.Date":datetime.strptime('Date', '%b %d, %Y').date()})
connection.close()
我已經試過update_many,但似乎整個更新語法是不正確的,就像如果它沒有得到接取日期字段。有小費嗎 ?
編輯:當我嘗試這種代碼:
client = collection.update_many({}, {"$set": {"Data": {"Date": '2000'}}})
它的工作原理,但是這一次不 client = collection.update_many({}, {"$set": {"Data": {"Date": datetime.strptime("Date", '%b %d, %Y').date()}}})
謝謝回覆! 它仍然無法正常工作,但是當我用任何字符串替換datetime.strptime(「Date」,「%b%d,%Y」)。date()時,它可以工作, 我認爲它不接受操作裏面更新? –
請你告訴你做了什麼錯誤?所以如果可能的話我可以幫你 –
沒有語法錯誤,就像datetime.strptime在crud操作中不起作用一樣。使用 嘗試 林: 除外: 打印( 「錯誤」),所以基本上它總是跳轉到這個異常,每當我用 「datetime.strptime( '日期', '%B%d,%Y' ).date()」 但它完美的作品時,我用正常的字符串更新。 –