Database-Design

使用 mongodb 為使用者/管理員單獨登錄

  • January 2, 2015

我的網站上有 2 個不同的使用者組。一個是使用者,另一個是管理員。目前我將它們分別放在 2 個不同的集合useradmin和 login 中。我的問題是:

  1. Mongodb 自動為使用者管理員集合生成 _id。由於它們位於 2 個不同的集合中,因此有一天您創建了一個具有相同 _id 的使用者和一個管理員,對嗎?因此,似乎唯一的方法是檢查兩個數據庫中的所有文件並確保您新創建的使用者(或管理員)沒有重複的 _id 對嗎?有沒有什麼我可以在 mongodb 本地做的事情來實現這一點而無需檢查?
  2. 我還可以將所有使用者和管理員放在一個集合中。這樣我沒有問題,但我不確定我是否應該這樣做。

ps:因為我有一個跟踪使用者/管理員餘額的表,所以我當然不希望 _id 重複 p.s2:數據庫查詢的時間越來越長。我的 ORM 也自動為我創建使用者實例並生成 _id。我不確定我是否應該只生成一個 _id 並以這種方式創建它……

任何意見都非常感謝。謝謝!!

你不應該有兩個集合,那會讓你頭疼。

擁有一個包含管理員和普通使用者的使用者集合。然後,您可以整體查詢使用者或僅查找給定類型。因此,如果您正在尋找使用者 id x 您沒有兩個搜尋兩個集合。

至於關於具有 2 個集合的重複 id 的問題,它僅取決於 id 的生成方式。你說你的 ORM 做到了……所以你需要檢查文件以了解它是如何做到的。

  1. 關於 _id 生成,只要您不明確指定 _id,Mongo 就會為您處理 id。它為不同的集合生成不同的隨機數。因此,您不必擔心跨不同集合的重複 _id。參考這裡
  2. 我同意其他答案,使用相同的集合併添加一個額外的欄位來區分普通使用者和管理員

引用自:https://dba.stackexchange.com/questions/87349