簡體   English   中英

從mongodb中作為文檔檢索后如何獲取對象類型?

[英]How to get object type after retrieving it as document from mongodb?

我正在開發一個具有多種用戶的 nodejs 應用程序,例如“用戶”和“頁面”。 我使用 MongoDB 來保存我的數據,並使用 Passportjs 進行身份驗證。 我需要根據用戶類型提供不同的序列化方法。 示例代碼:


    passport.serializeUser((obj, done) => {
        if (obj instanceof User) {
            console.log("serialising user", obj);
            done(null, { id: obj._id, type: 'user' });
        } else if (obj instanceof Page) {
            console.log("serialising page", obj);
            done(null, { id: obj._id, type: 'page' });
        } 
    });

這里的問題是instanceof不適用於從 MongoDB 檢索的文檔。 它們是使用 User/Page 的構造函數創建的,但現在我無法區分它們,因為它們現在都是 object 類型。 我該如何處理?

從這兩個不同的集合中找到一個唯一的字段,並根據字段和字段值應用此邏輯

我最終做的確實是在返回的對象中使用了一個字段obj.userType ='user'/'page' ,但我沒有將它保存在數據庫中。 相反,我查詢對象,取回文檔 BSON,然后簡單地向其中添加字段。 這樣我就不必一直將它保存給所有用戶,它只是會話所需的檢索用戶對象,直到它終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM