Pymongo - 查询所有文档的最快方式

时间:2016-07-28 08:28:19

标签: mongodb dictionary pymongo

我有一个包含嵌套字典的文件我保存在我的电脑上,当我需要该文件时,我使用了这行代码:

u_i = pickle.load(open("F:\\ForTestCode\\user_item_21_07.p", "rb"))

这是u_i中的类型数据:

{"BF0E6CF26097FF44B56EBA795F25B48A" : {"557252215845" : 1.0}, 
       "9FFA99A1374CD953A30CB1F746F11C6A" : { "978076659142" : 1.0, "622" : 1.0}
               }

然后,我将嵌套字典插入MongoDB,它变成了这样:

{
    "_id" : ObjectId("57971bcffefb610990cc5eaa"),
    "BF0E6CF26097FF44B56EBA795F25B48A" : {
        "557252215845" : 1.0
    }
}

{
    "_id" : ObjectId("57971bcffefb610990cc5ec6"),
    "9FFA99A1374CD953A30CB1F746F11C6A" : {
        "978076659142" : 1.0,
        "622" : 1.0
    }
}

所以,如果我需要将MongoDB中的所有文档放到上面的u_i这样的文件中,我需要做一个这样的循环:

temp_dict = {}
documents_u_i = collection_u_i.find({})
for records in documents_u_i:
   for item in records:
       if item != "_id": # I dont need key and values of `_id`
           temp_dict[item] = records[item]

temp_dict将是嵌套词典,如上面的u_i

temp_dict = {"BF0E6CF26097FF44B56EBA795F25B48A" : {"557252215845" : 1.0}, 
       "9FFA99A1374CD953A30CB1F746F11C6A" : { "978076659142" : 1.0, "622" : 1.0}
               }

但我不想在我的数据库中使用for循环原因有> 90.000个文件

是否有最快的方法来查询数据而不使用for循环?

非常感谢你的帮助!

0 个答案:

没有答案