2016-05-07 9 views
0

ユーザープロファイルを作成できるようにするRESTサービスを作成しています。問題は、各ユーザーのユーザーIDを作成することです。私はそれぞれの一意のユーザーを記述するためにランダムな16進数を使うことができますが、これがデータベース索引検索に効率的かどうかはわかりません。データベースでインデックス化可能なユーザーIDを作成する

ユーザIDを作成して、必要なときにすばやく検索できるようにする方法と、高速検索のために簡単にインデックス登録する方法はありますか。

答えて

0

高速検索をもたらすことができるフィールドのuser_idのインデックスを取得するための2つの方法があります。デフォルトのインデックス付けされ

  1. 使用のMongoDBの_idフィールドが。このフィールドには user_isを格納できます。これには2つの利点があります。

    • a。新しいフィールドを作成する代わりに既存のフィールドを使用して、 ユーザID
    • bを保存することができます。余分なインデックスを作成することで節約できます。
  2. 第二に、各ユーザーのための場合は、ユーザーを格納し、使用して索引付けすることができる新たに出願USER_IDを作成することができます。

    db.ensureIndex({USER_ID:1}、{背景:真})

+0

2番目の方法では、良いインデックスを確保するために増分する数字を使用する必要がありますか、またはA-Z0-9を含むHex値または文字列を使用できますか? – mskw

+0

Mongodbでは、異なるタイプのフィールドにインデックスを付けることができます。整数型と16進数の両方のインデックスを作成できます – Astro

+0

一般的なベストプラクティスは何ですか?私のリソースのURLにmongodbの_idが含まれていると、非常に長いように思えます。もっと短い番号のIDだけを使う方がいいですか? – mskw

関連する問題