Раньше я использовал pymongo.bulk.BulkOperationBuilder
, но в документах говорится, что он устарел.
Официальный MongoDB имеет db.cloneCollection()
, но я не могу найти ничего похожего в PyMongo , кроме copydb
, но это не то, что мне нужно.
Таким образом, я нашел два способа вставить документы между сборками и затем удалить их. Я еще не проверял их, я хотел бы сначала спросить у вас совета, потому что может быть лучший способ.
Решение № 1.
coll_from = mongo['db_1']['coll_name']
coll_to = mongo['db_2']['coll_name']
requests = (InsertOne(doc) for doc in coll_from.find())
result = coll_to.bulk_write(requests, ordered=False)
db_from.drop_collection('coll_name')
Решение № 2.
coll_from = mongo['db_1']['coll_name']
coll_to = mongo['db_2']['coll_name']
coll_to.insert_many(coll_from.find())
db_from.drop_collection('coll_name')
Есть ли лучший способ для массового перемещения документов между БД?