[英]pymongo update all documents in collection for field with it's substring value
[英]How do I update all documents in a collection with pymongo
我正在使用pymongo(python 3.6 with mlab),我想更新我的集合中的所有文档。 在我的文档中,我有这样的数据存储:
{
"_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而不是1997年1月6日。我有这个代码:
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,但似乎整个更新语法都不正确,就好像它没有进入Date字段一样。 有小费吗 ?
编辑:当我尝试这段代码时:
client = collection.update_many({}, {"$set": {"Data": {"Date": '2000'}}})
它有效,但这个不是client = collection.update_many({}, {"$set": {"Data": {"Date": datetime.strptime("Date", '%b %d, %Y').date()}}})
尝试从更新查询中删除“数据”,并在“$ set”之前和之后添加{}
collection.update({}, {"$set" : {"Date":datetime.strptime('Date', '%b %d, %Y').date()}})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.