如何使用pymongo/pandas批量更新/插入mongoDb。 我得到的错误是batch op errors occurred
我之所以得到是因为我设置"_id"
,我想要做的。我的代码在第一次运行时运行良好,但第二次运行时失败。我想在工作流程中使用熊猫。数据确实有一个日期时间对象。使用PyMongo在MongoDB中批量插入/更新
语法与upsert = True
完全不同,其中Update
。有效的解决方案update
将会有所帮助,其中"_id"
或"qid"
可以设置。 但是,有python datetime对象!
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
我已经给了一个 PT赏金,其中过期,没有回答。嗯......
Mongo使用'string base input'并且不允许任何变量插入(仅限运算符)[请检查此](http://stackoverflow.com/questions/2803852/python-date-string-to-date-object), 'json.loads(dfOut)'你不能插入本地变量作为条目!主键'YYYYmmDDHHMMSS' +'计数器值' – dsgdfg
您可以深入了解'BulkWriteError'的细节并更好地了解发生了什么。可能是您的个人定义的ID是重复的或违反了12个字节的限制。有关详细信息,请参阅http://stackoverflow.com/questions/30355790/mongodb-bulk-write-error。 –
_id第一次工作的事实告诉我,12字节的限制不是问题。是的,_id或gid是dups,需要更新。 – Merlin