对于一个项目,我需要将已存储在mongoDB集合中的文档与json文件中的dict进行比较。如果不存在,我想将其添加到集合中。
我创建了一个if else结构来检查json文件中的字典是否等于mongoDB集合中的文档。
{
"filename": "/file/location.txt",
"Date scanned": "Thu Jan 31 20:06:46 2019",
"Date Last Modified": "Fri Jan 11 20:13:39 2019",
"hash": "d4e5d5e11775eda8853c29f5b41287bfcd4ce643"
}
{
'hash': 'd4e5d5e11775eda8853c29f5b41287bfcd4ce643',
'filename': '/file/location.txt'}
count = 0
for line in data[hostname['hostname']]:
file = data[hostname['hostname']][count]
filename = file['filename']
dbfile = db.hashedFiles.find_one({'filename': filename},
{'_id': False, 'Date Last Modified': False,
'Date scanned': False}, sort=[('_id', pymongo.DESCENDING)])
if filename != dbfile['filename'] or not dbfile:
db.hashedFiles.insert_one(file)
else:
if data[hostname['hostname']][count]['hash'] != dbfile:
print("Hash is not the same")
count += 1
我用打印语句检查了所有值并进行了类型检查。但是每次它说它们不同时,我都不明白为什么。