У меня есть эти документы в коллекции:
{'name': 'Document 1', 'filename': 'Document 1', 'extension': 'pdf', 'filepath': '/mnt/Document 1.pdf', 'origin': 'DB'},
{'name': 'Document 1', 'filename': 'Document 1', 'extension': 'txt', 'filepath': '/mnt/Document 1.txt', 'origin': 'DB'},
{'name': 'Document 2', 'filename': 'Document 2', 'extension': 'pdf', 'filepath': '/mnt/Document 2.pdf', 'origin': 'DB'}
Когда я делаю что-то вроде:
query = {'name': 'Document 1', 'extension': 'txt', 'origin': 'DB'}
update = {'$set': {'filepath': '/something/Document 1.txt'}}
document.update_one(
query, update
)
, он отлично работает. Но затем у меня есть файл, содержащий:
/house/away/Document 1.pdf
/house/away/Document 1.txt
/house/away/Document 2.pdf
, и я пытаюсь сделать:
mongo_client = MongoClient('localhost', 27017)
print(mongo_client)
db = mongo_client.some_test
document = db.document
file = open('file', 'r')
lines = file.readlines()
for line in lines:
name = os.path.basename(line).rsplit('.',1)[0]
extension = os.path.basename(line).split('.')[-1].rstrip('\n')
new_path = line.rstrip('\n')
query = {'name': name, 'extension': extension, 'origin': 'DB'}
update = {'$set': {'filepath': new_path}}
document.update_one(
query, update
)
, это не работает.
Что мне здесь не хватает?