$project無效
需求
希望通過$lookup**多表聯查獲取到**cotegory**和**author**的數據,然後通過**$project過濾自定義字段中的部分數據。
返回值如圖,顯然並沒有實現想要的效果,值並未被過濾。
$project無效的原因
經過我反覆對照官方文檔,發現語法上並沒有什麼問題。
靈機一動,我嘗試把$project**放到了**$lookup之後,再次運行,竟然成功了!哈哈哈哈
總結原因
問題就出在思維定式上,認爲聚合操作只是配置並不需要操心順序,理所當然覺得數組形式也只是配置。然而數組形式下運行時是根據順序來的,所以得先$lookup**操作獲取數據,然後再**$project操作過濾數據。
趕緊記一下這個坑,哈哈,真是萬萬沒想到。如果有幫助,收藏點贊鼓勵下,謝謝!