python - 如何在非常大的数据库上使用 mongodb 查询操作(有 3 个分片,每个分片大约 260-3 亿)
问题描述
我必须在包含大约 8 亿个文档的分片数据库中的不同日期范围列之间查找数据。我正在使用这个查询:
cursordata=event.aggregate([{"$match":{}},{"$unwind":},{"$project":{}}])
但是,当我将其更改为熊猫数据框时
df=pd.DataFrame(cursordata)
它永远存在,根本不起作用,它只是卡住了。
我有两个选择:
- 要么直接从 mongodb 继续查询不同的条件,要么
- 改成data到dataframe后,针对不同的条件进行操作
请建议如何进行。
解决方案
我们可以提供一份文件样本吗?我认为您应该寻找与您正在查询的字段匹配的索引。
提醒一下,请记住 MongoDB 索引中的Equality、Sort、Range规则。
此外,由于您在分片集群中,您可能希望在查询中包含分片键,否则 mongos 将查询所有分片(更多信息here)
推荐阅读
- angular - ListView 项目显示为 [object object] 数组中的数组
- css - 在 Firefox 68 的 file:/// 上的 HTML 文件中使用 @font-face
- html - 使用 CSS 删除空格
- python - 如何通过 scrapy Request 发送 cookie 数据?
- highcharts - 如何替换 highcharts 甘特图时间轴中的“周”一词?
- java - 如何正确浮动提示?
- c++ - 如何同时控制具有多个按键输入的两个 QGraphicsItem 对象?
- c++ - 函数 CryptEncrypt 期间崩溃
- angular - 行动表条目限制为 5 个
- swift - Swift 3D Touch BSMachError