pongongo/pandasでmongoDbを一括更新/挿入する方法を教えてください。 私が得るエラーはbatch op errors occurred
です 私がしたい理由は、私がしたい"_id"
を設定しているからです。最初の実行ではコードは正常に実行されますが、2回目には失敗します。私はワークフローでパンダを使いたい。データにはdatetimeオブジェクトがあります。MongoDBでPyMongoを一括挿入/更新する
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の恵みを、与えています。多分重複する_idによって引き起こさうーん...
Mongoは 'string base input 'を使用し、変数の挿入を許可しません(オペレータのみ)[これをチェックしてください](http://stackoverflow.com/questions/2803852/python-date-string-to-date-object)、 'json.loads(dfOut)'あなたはエントリとしてローカル変数を挿入することはできません!主キー 'YYYYmmDDHHMMSS' +' Counter value' – dsgdfg
'BulkWriteError'の詳細を掘り下げて、何が起こっているのかを知ることができます。あなたの個人的に定義されたIDが重複しているか、または12バイトの制限に違反している可能性があります。詳細については、http://stackoverflow.com/questions/30355790/mongodb-bulk-write-errorを参照してください。 –
_idが初めて動作したことから、12バイトの制限は問題ではないことがわかります。はい、_idまたはgidはdupsであり、更新に必要です。 – Merlin