如何将mongoDB集合中的文档与json字典进行比较

时间:2019-01-31 20:21:57

标签: python mongodb pymongo

问题:

对于一个项目,我需要将已存储在mongoDB集合中的文档与json文件中的dict进行比较。如果不存在,我想将其添加到集合中。

我尝试过的

我创建了一个if else结构来检查json文件中的字典是否等于mongoDB集合中的文档。

data.json:

{
  "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"
}

mongoDB:

{
  '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

结果

我用打印语句检查了所有值并进行了类型检查。但是每次它说它们不同时,我都不明白为什么。

0 个答案:

没有答案