Я пытаюсь скопировать удаленный сервер атласа mongodb на локальный. Я делаю это с помощью скрипта Python, который также проверяет, есть ли запись уже там. Я вижу, что хотя локальная база данных пуста, мой скрипт находит дубликаты, которых нет в удаленном атласе mongodb (по крайней мере, я не могу их найти). Я не так опытен с mongodb и pymongo, но я не понимаю, что я делаю неправильно. Иногда Find_one () находит точно такую же запись, как и раньше (все поля одинаковы, даже _id)?
Я полностью удалил коллекцию с локального сервера и повторил попытку, но результат все тот же.
UserscollectionRemote = dbRemote['users']
UserscollectionNew = dbNew['users']
LogcollectionRemote = dbRemote['events']
LogcollectionNew = dbNew['events']
UsersOrg = UserscollectionRemote.find()
for document in UsersOrg: # loop over all users
print(document)
if UserscollectionNew.find_one({'owner_id': document["owner_id"]}) is None: # check if already there
UserscollectionNew.insert_one(document)
UserlogsOrg = LogcollectionRemote.find({'owner_id': document["owner_id"]}) # get all logs from this user
for doc in UserlogsOrg:
try:
if LogcollectionNew.find_one({'date': doc["date"]}) is None: # there was no entry yet with this date
LogcollectionNew.insert_one(doc)
else:
print("duplicate");
print (doc);
except:
print("an error occured finding the document");
print(doc);