【发布时间】:2017-02-14 14:07:45
【问题描述】:
我正在尝试将文档从一个数据库增量复制到另一个数据库。
某些字段包含以下格式的日期时间值:
2016-09-22 00:00:00
而其他人是这种格式:
2016-09-27 09:03:08.988
我像这样提取和插入文档:
pd.DataFrame(list(db_prod.db_name.collction_name.find({'_updated_at': {'$gt': last_added_timestamp}}).sort('_updated_at', 1)))
add = (df.to_dict('records'))
try:
db_incremental.other_db.collection_name.insert_many(add)
except BulkWriteError as bwe:
print(bwe.details)
这是错误:
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 684, in insert_many
blk.execute(self.write_concern.document)
File "/usr/local/lib/python2.7/dist-packages/pymongo/bulk.py", line 470, in execute
return self.execute_command(sock_info, generator, write_concern)
File "/usr/local/lib/python2.7/dist-packages/pymongo/bulk.py", line 302, in execute_command
run.ops, True, self.collection.codec_options, bwc)
File "pandas/tslib.pyx", line 663, in pandas.tslib._make_error_func.f (pandas/tslib.c:14736)
ValueError: NaTType does not support utcoffset
我实际上不需要修改时间戳,只需按原样插入即可。
任何帮助表示赞赏。
【问题讨论】:
-
每次都需要手动查找
by key and value。哪个更好? -
我想在文档中插入所有字段和值
-
替换键是不同的条目,所以写一个尝试,除了引发错误,插入新的键和值,删除旧的。
-
恐怕我不太关注。我已经在我的 insert_many 中使用了 try/except。我没有使用替换。
-
Mongo 程序:替换/更改密钥等于插入新