13

たとえば、デフォルトの「_id」ではなく、mongo ドキュメントの一意の ID としてユーザー名を使用したい場合はどうすればよいでしょうか?

mongo.exe コンソールを使用してこれを達成したいと思います。

4

3 に答える 3

20

MongoDB では、自動的にインデックスを作成する一意の主キーとして _id プロパティが必要です。

次の 2 つのオプションがあります。

  1. _id プロパティを使用して、ユーザー名で設定します。
  2. ユーザー名プロパティを作成し、その新しいプロパティにインデックスを追加します。_id は引き続き使用できますが、ユーザー名を使用してクエリを実行できます。
于 2013-04-06T19:00:05.517 に答える
1

_id複製において重要です。_idインデックスがなくてもコレクションを作成できますが、データベースを複製することはできません。レプリケーションでは、 _idすべてのコレクションにインデックスが必要です。

于 2013-10-17T13:09:44.480 に答える
0

{username: "John", age: 12} のようなレコードが存在する可能性があることはわかっています。つまり、_id なしです。これを行う方法?

@Sergesの回答がどのように明確ではなかったかはわかりませんが、繰り返しますが、方法はありません。技術的には、MongoDB の一部のバージョンではキャップ付きコレクションの _id を取り出すことができますが、それ以外はできません。

また、ユーザー名の使用についても懸念しています。シャーディングなどのアクティビティには最適ではない可能性があり、クラスターなどでアクティビティの多い「ホットスポット」を作成する可能性があります。私はあなたのデータに関する立場にないため、すべて理論上のものです。ただし、このことを検討するのが最善です。

于 2013-04-06T21:43:18.327 に答える