Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
慢速mongodb查询_Mongodb_Performance_Numpy_Mongodb Query - Fatal编程技术网

慢速mongodb查询

慢速mongodb查询,mongodb,performance,numpy,mongodb-query,Mongodb,Performance,Numpy,Mongodb Query,我收集了约300000份文档,需要进行约150000次查询。我有矩阵A_B(150000行,A列,B列),我需要查询每行中的B条目,找到与此条目关联的文档及其值“C_id”。然后我跟踪矩阵A_C(150000行,A列,C列)中的所有A值和关联的C值。 目前,这需要一个多小时才能运行,速度似乎慢得离谱。你知道为什么这么慢吗?每次,游标都应该返回一个文档 client = pymongo.MongoClient() db = client.dataBases collection = db.coll

我收集了约300000份文档,需要进行约150000次查询。我有矩阵A_B(150000行,A列,B列),我需要查询每行中的B条目,找到与此条目关联的文档及其值“C_id”。然后我跟踪矩阵A_C(150000行,A列,C列)中的所有A值和关联的C值。 目前,这需要一个多小时才能运行,速度似乎慢得离谱。你知道为什么这么慢吗?每次,游标都应该返回一个文档

client = pymongo.MongoClient()
db = client.dataBases
collection = db.collection

A_B = np.loadtxt('A_B.txt')
A_C = np.zeros(A_B.shape)

for r in range(0, A_B.shape[0]):
    A = A_B[r, 0]
    B_r = A_B[r, 1]
    C = 0
    cursor = collection.find({'C_id': B_r})
    for i in cursor:
        C = i['n_id']

    A_C[r, :] = np.asarray([A, C])

np.savetxt('A_C.txt', A_C.txt)

这些集合有什么索引?我让mongodb自动生成ID。这可能是个问题吗?这通常不应该是个问题。这是我应该期望的速度吗?有很多因素会影响性能,不仅仅是数据库本身。你可以从阅读开始。首先,您应该在集合上为字段
C_id
设置索引,并确保它很好地适合RAM。如上所述,如果您可以发布示例文档和变量的内容,这将有所帮助。另见相关文件