首页 > 解决方案 > 如何在非常大的数据库上使用 mongodb 查询操作(有 3 个分片,每个分片大约 260-3 亿)

问题描述

我必须在包含大约 8 亿个文档的分片数据库中的不同日期范围列之间查找数据。我正在使用这个查询:

cursordata=event.aggregate([{"$match":{}},{"$unwind":},{"$project":{}}])

但是,当我将其更改为熊猫数据框时

df=pd.DataFrame(cursordata)

它永远存在,根本不起作用,它只是卡住了。

我有两个选择:

  1. 要么直接从 mongodb 继续查询不同的条件,要么
  2. 改成data到dataframe后,针对不同的条件进行操作

请建议如何进行。

标签: pythonpandasmongodbmongodb-querysharding

解决方案


我们可以提供一份文件样本吗?我认为您应该寻找与您正在查询的字段匹配的索引。

提醒一下,请记住 MongoDB 索引中的Equality、Sort、Range规则。
此外,由于您在分片集群中,您可能希望在查询中包含分片键,否则 mongos 将查询所有分片(更多信息here


推荐阅读