aggregate中聚合操作無效的原因

$project無效

圖片描述
圖片描述

需求

希望通過$lookup**多表聯查獲取到**cotegory**和**author**的數據,然後通過**$project過濾自定義字段中的部分數據。
返回值如圖,顯然並沒有實現想要的效果,值並未被過濾。

$project無效的原因

經過我反覆對照官方文檔,發現語法上並沒有什麼問題。
靈機一動,我嘗試把$project**放到了**$lookup之後,再次運行,竟然成功了!哈哈哈哈

圖片描述
圖片描述

總結原因

問題就出在思維定式上,認爲聚合操作只是配置並不需要操心順序,理所當然覺得數組形式也只是配置。然而數組形式下運行時是根據順序來的,所以得先$lookup**操作獲取數據,然後再**$project操作過濾數據。

趕緊記一下這個坑,哈哈,真是萬萬沒想到。如果有幫助,收藏點贊鼓勵下,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章