2017-03-21 106 views
0

假設我的數據庫中有一個名爲rabbits的集合。我的應用使用這個數據庫,目前有多個用戶在使用我的應用。用戶希望逐一看到兔子;當他們啓動應用程序時,他們會看到1只兔子,然後按'下一個'看下一個,等等。如何在node.js中使用mongodb遊標

我不想在每次用戶按下時查詢數據庫,所以我決定使用遊標。我正在考慮創建一個簡單的地圖數據結構(用作緩存),將用戶映射到其光標。因此,在再次查詢數據庫之前,我們只需首先檢查地圖。

這是一個很好的做法嗎?我應該在這裏使用redis嗎?

+0

根據你的應用運行的是多少兔子,你可以只檢索一次兔子,發送給客戶端,並讓客戶端代碼從已有的列表中切換到下一個兔子。 –

+0

我可以這樣做,但是如果有人能夠澄清什麼時候開始使用像redis這樣的緩存層的時候,我會很感激。我猜這不像這樣簡單的事情值得嗎? –

+0

如果你有很多用戶都要求提供相同的兔子列表,那麼把redis放在中間也不會有什麼壞處。 –

回答

1

這個問題可能有一百萬個答案,大多數都是正確的。只是一些可能性:

  1. 當然,您可以使用Redis,並從內存中讀取它。
  2. 您也可以降低出價使用,如node-cache,這將有較少的開銷和更容易實施。
  3. 你可以用光標 - >數組---> JSON,如果你不擔心不斷的新兔子(畢竟兔子快速繁殖:) - 那麼你可以寫兔子到一個JSON文件,並且隨着客戶想要擺脫它而提起。
  4. 您當然可以彙總您的MongoDB光標...或每隔幾分鐘運行一次cron job以創建一個新的Rabbit Pick光標。

就這樣走了。

關鍵是要將您的決定與您的服務器上的服務,內存和內核相匹配。

+0

這是我正在尋找的答案。我希望模塊已經實現了我想要實現的功能。節點緩存和cron作業的介紹幫助了很多。謝謝! –

+0

@AmerMograbi很高興幫助:)祝你好運 – twg

相關問題