我该如何使用pymongo/pandas批量更新/插入mongoDb?
我收到的错误为“batch op errors occurred”。
我认为是因为我设置了“_id”,但我想这么做。我的代码第一次运行正常,但第二次运行失败。我想在工作流程中使用pandas。数据包含一个日期时间对象。
使用“upsert = True”和“Update”的语法完全不同。希望能提供一个有效的解决方案,其中可以设置“_id”或“qid”。但是,有Python日期时间对象!
使用“upsert = True”和“Update”的语法完全不同。希望能提供一个有效的解决方案,其中可以设置“_id”或“qid”。但是,有Python日期时间对象!
InSQL = 'SELECT * from database2.table2 '
sqlOut = pd.read_sql(InSQL,cxn)
sqlOut['_id'] = "20170101" + ":"+ sqlOut['Var']
dfOut = sqlOut.to_json(orient='records',date_format='iso' )
try:
db["test"].insert_many(json.loads(dfOut))
except Exception as e: print e
我曾经发布了一个50pt的悬赏,但已经过期并且没有答案。嗯...
string base input
,不允许插入任何变量(仅限操作符)请查看此链接,json.loads(dfOut)
无法将本地变量作为条目插入!主键为YYYYmmDDHHMMSS
+计数器值
。 - dsgdfgBulkWriteError
的详细信息,更好地了解发生了什么。可能是您个人定义的ID重复或违反了12字节限制。有关详细信息,请参见https://dev59.com/JF0a5IYBdhLWcg3waYGM。 - conner.xyz_id
键)。你能否更新一下dfOut
内容和您尝试的upsert代码的简短示例?另外,您使用的PyMongo版本是什么?我怀疑您实际上想使用带有设置upsert
选项的update_many()
。您还可以澄清Python日期时间对象和_id
与qid
之间的关注点吗?您是否想将qid
用作_id
? - Stennie