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()” 但它完美的作品时,我用正常的字符串更新。 –