Mongodb怎么快速查询多个collection的数据,并把集合按时间顺序排序?

新手上路,请多包涵

我查询单个collection用:

flt = {'datetime': {'$gte': datetime(2017,12,12)}}
dbCusor = collection.find(flt).sort('datetime') 

现在要查询多个collection的这一时间段的数据,并把这些数据按时间顺序放到一起,

怎么办,只能遍历比较再放数组里了吗?

阅读 6.2k
1 个回答

先问一个问题,如果放在关系数据库,这个需求你准备怎么做?先UNIONORDER BY?做是能做到,但是是一个无法使用索引的内存排序,效率可想而知。
如果从效率出发(没有说明,所以并不知道效率是不是你的第一关注点),这些数据既然是要放在一起排序的,说明它们有一定的内在联系,那么为什么不把它们放在一个集合里?MongoDB的无模式设计是支持你这样做的,并且在合适的场景下也建议这样做。不过这里也没提到实际的场景,所以无法进一步分析。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题