2016-05-08 203 views
3

我正在使用來自「connect-mongo」的MongoStore的「快速會話」。現在根據我的理解,會話以某種方式存儲在mongodb中。可以說我已經在會話中存儲了用戶名。從node.js會話獲取信息與從數據庫獲取信息

現在,可以說我經常需要用戶喜歡的顏色。我有兩種做法。在會話中存儲最喜歡的顏色,或使用會話中的用戶名查詢數據庫。

現在我的問題是,由於會話存儲在數據庫中,查詢會話最終會查詢數據庫。那麼,這兩種方法有什麼區別。如果它們不同,哪一個更好?

回答

3

檢索會話數據需要數據庫查詢。如果您想在會話中存儲最喜歡的顏色,獲取該首選項將需要一個查詢。

如果不在會話中存儲顏色,則需要兩個數據庫查詢:一個用於會話,一個用於存儲顏色首選項的用戶數據。

所以,如果你知道在一個會話期間你將需要很多顏色信息,最好是將這些信息複製到會話中(儘管不要期望性能有大的提升,MongoDB和你的操作系統會嘗試儘可能將經常使用的數據庫記錄保存在內存中)。

可能的缺點是,如果更改首選項,需要更新多個文檔(如果用戶更改了他們喜歡的顏色,則需要更新會話文檔和數據庫中的用戶文檔)。

+0

我想知道會話是否比數據庫查詢更快,但不要猜測。所以這只是另一個背景數據庫查詢。感謝您清理它。 – forthright48

+0

會話數據存儲爲其他任何MongoDB文檔:-) – robertklep