mongo聚合查詢最近的一條數(shù)據(jù)

剛開始使用mongo,一些常用技巧沒有掌握皂贩,導(dǎo)致一些查詢特別耗費(fèi)時間栖榨,這里總結(jié)一下近幾天使用的一些小技巧,有使用的童鞋可以看一看明刷。
常用的是aggregate婴栽,這里面的技巧如下:
1.使用$match首先進(jìn)行數(shù)據(jù)篩選,這里要注意了辈末,有個隱藏的點(diǎn)愚争,就是當(dāng)mongo建立索引,并且用索引去搜索時挤聘,會按照默認(rèn)的排序規(guī)則進(jìn)行排序轰枝。當(dāng)我們建立一個復(fù)合索引時,首先會按照我們查找的第一個字段排序组去,然后在按照復(fù)合索引里面的下一個排序

query = [
        {"$match": {"customer.address_id": {"$in": sids}}},
        {"$project": {"_id": 1, "date_time": 1, "customer.address_id": 1, "total_pay": 1}},
        # {"$sort": {"date_time": -1}},
        {"$group":
            {
                "_id": "$customer.address_id",
                "last_order_time": {"$first": "$date_time"},
                "last_order_money": {"$first": "$total_pay"},
            }
        }
    ]

sids為要查詢的列表:如用戶id之類的鞍陨。

比如這個查詢語句,我們的表中對date_time和customer.address_id進(jìn)行了索引的建立从隆,我們使用address id進(jìn)行查詢時會先按照這個來排序诚撵,然后在按照datetime來排序,所以當(dāng)我們按照address id來進(jìn)行g(shù)roup時键闺,所查詢到的數(shù)據(jù)其實(shí)是按照datetime默認(rèn)排好序的砾脑,倒序排,我們就可以拿著拍好序的數(shù)據(jù)去進(jìn)行其它操作艾杏,比如這里我去獲取每個分組里面的第一條訂單記錄里面的字段。

這里要注意一點(diǎn):代碼里面注釋了一行sort排序盅藻,是按照datetime進(jìn)行的购桑,這樣會對mongo默認(rèn)按照索引排序造成破壞(已經(jīng)按照address id排好了),會使查詢速度下降的特別多氏淑。

使用場景:代碼里面的邏輯的使用場景是用來查詢一個用戶最近的一筆訂單信息勃蜘,這樣的查詢會比較快速,穩(wěn)定一些假残。

2.使用$project在聚合條件下制定查詢字段
用什么查什么缭贡,不要全部返回數(shù)據(jù),這樣子還是很耗時的辉懒。使用這個功能對我們要查詢的字段進(jìn)行篩選阳惹,速度提升較高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眶俩,一起剝皮案震驚了整個濱河市莹汤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颠印,老刑警劉巖纲岭,帶你破解...
    沈念sama閱讀 205,874評論 6 479
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹竹,死亡現(xiàn)場離奇詭異,居然都是意外死亡止潮,警方通過查閱死者的電腦和手機(jī)窃判,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,151評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喇闸,“玉大人袄琳,你說我怎么就攤上這事〗鲑耍” “怎么了跨蟹?”我有些...
    開封第一講書人閱讀 152,270評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長橘沥。 經(jīng)常有香客問我窗轩,道長,這世上最難降的妖魔是什么座咆? 我笑而不...
    開封第一講書人閱讀 55,137評論 1 278
  • 正文 為了忘掉前任痢艺,我火速辦了婚禮,結(jié)果婚禮上介陶,老公的妹妹穿的比我還像新娘堤舒。我一直安慰自己,他們只是感情好哺呜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,116評論 5 370
  • 文/花漫 我一把揭開白布舌缤。 她就那樣靜靜地躺著,像睡著了一般某残。 火紅的嫁衣襯著肌膚如雪国撵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,935評論 1 283
  • 那天玻墅,我揣著相機(jī)與錄音介牙,去河邊找鬼。 笑死澳厢,一個胖子當(dāng)著我的面吹牛环础,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剩拢,決...
    沈念sama閱讀 38,261評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼线得,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了徐伐?” 一聲冷哼從身側(cè)響起框都,我...
    開封第一講書人閱讀 36,895評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后魏保,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熬尺,經(jīng)...
    沈念sama閱讀 43,342評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,854評論 2 323
  • 正文 我和宋清朗相戀三年谓罗,在試婚紗的時候發(fā)現(xiàn)自己被綠了粱哼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,978評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡檩咱,死狀恐怖揭措,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刻蚯,我是刑警寧澤绊含,帶...
    沈念sama閱讀 33,609評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站炊汹,受9級特大地震影響躬充,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讨便,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,181評論 3 307
  • 文/蒙蒙 一充甚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧霸褒,春花似錦伴找、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,182評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至殊轴,卻和暖如春穆役,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梳凛。 一陣腳步聲響...
    開封第一講書人閱讀 31,402評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梳杏,地道東北人韧拒。 一個月前我還...
    沈念sama閱讀 45,376評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像十性,于是被迫代替她去往敵國和親叛溢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,677評論 2 344

推薦閱讀更多精彩內(nèi)容