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

How to use mongodb query operation on a very large database (have 3 shards of around 260-300 million in each)

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

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

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

df=pd.DataFrame(cursordata)

它用了很长时间,根本不起作用,只是卡住了。

我有两个选择:

  1. 直接从mongodb或
  2. 继续查询不同的条件
  3. data转dataframe后,针对不同条件进行运算

请建议如何进行。

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

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