鍍金池/ 問(wèn)答/Python  數(shù)據(jù)庫(kù)/ Mongodb怎么快速查詢多個(gè)collection的數(shù)據(jù),并把集合按時(shí)間順序排序

Mongodb怎么快速查詢多個(gè)collection的數(shù)據(jù),并把集合按時(shí)間順序排序?

我查詢單個(gè)collection用:

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

現(xiàn)在要查詢多個(gè)collection的這一時(shí)間段的數(shù)據(jù),并把這些數(shù)據(jù)按時(shí)間順序放到一起,

怎么辦,只能遍歷比較再放數(shù)組里了嗎?

回答
編輯回答
浪婳

先問(wèn)一個(gè)問(wèn)題,如果放在關(guān)系數(shù)據(jù)庫(kù),這個(gè)需求你準(zhǔn)備怎么做?先UNIONORDER BY?做是能做到,但是是一個(gè)無(wú)法使用索引的內(nèi)存排序,效率可想而知。
如果從效率出發(fā)(沒(méi)有說(shuō)明,所以并不知道效率是不是你的第一關(guān)注點(diǎn)),這些數(shù)據(jù)既然是要放在一起排序的,說(shuō)明它們有一定的內(nèi)在聯(lián)系,那么為什么不把它們放在一個(gè)集合里?MongoDB的無(wú)模式設(shè)計(jì)是支持你這樣做的,并且在合適的場(chǎng)景下也建議這樣做。不過(guò)這里也沒(méi)提到實(shí)際的場(chǎng)景,所以無(wú)法進(jìn)一步分析。

2018年6月27日 10:34