Mongoose 作為中介操控 MongoDB 的工具,在進行 Aggregation 相關操作時,會遇上一個偶然狀況:$match 方法無法進行 ID 相同的查找。這邊筆記下緣由和解決方法。
內容
因為 Mongoose 在進行 Query 條件時,會背後自動的將你傳入的 ID 字串進行轉換成 ObjectId。不過在 Aggregation 的場景中,並沒有這個機制,你需要手動的呼叫 Mongoose 內建好的方法,將字串轉換成 ObjectId。
程式碼
寫法為:$match: { <key>: mongoose.Types.ObjectId(<ID字串>)}
Reference
1. Moongoose aggregate $match does not match id’s
按讚加入粉絲團