如何在非常大的数据库上使用 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)
它用了很长时间,根本不起作用,只是卡住了。
我有两个选择:
- 直接从mongodb或
继续查询不同的条件
- data转dataframe后,针对不同条件进行运算
请建议如何进行。
我们可以提供文件样本吗?
我认为您应该查找与您正在查询的字段相匹配的索引。
提醒一下,请牢记 MongoDB 索引中的 Equality, Sort, Range 规则。
此外,由于您在分片集群中,您可能希望在查询中包含分片键,否则 mongos 将查询所有分片(更多信息 here)
我必须在总共有大约 8 亿份文档的分片数据库中找到不同日期范围列之间的数据。我正在使用这个查询:
cursordata=event.aggregate([{"$match":{}},{"$unwind":},{"$project":{}}])
但是,当我将其更改为 pandas 数据框时
df=pd.DataFrame(cursordata)
它用了很长时间,根本不起作用,只是卡住了。
我有两个选择:
- 直接从mongodb或 继续查询不同的条件
- data转dataframe后,针对不同条件进行运算
请建议如何进行。
我们可以提供文件样本吗? 我认为您应该查找与您正在查询的字段相匹配的索引。
提醒一下,请牢记 MongoDB 索引中的 Equality, Sort, Range 规则。
此外,由于您在分片集群中,您可能希望在查询中包含分片键,否则 mongos 将查询所有分片(更多信息 here)