モデルの1つにある一意の_idフィールドを比較的短くしたいのですが、通常のMongo _idの方がはるかに長いのではなく、8文字/数字です。このような短いunique-indexがあると、コードの他の場所で役立ちます。理由はここではスキップします。トリックを実行するスキーマを正常に作成しました(randomStringは、指定された長さの文字列を生成する関数です)。
new Schema('Activities', {
'_id': { type: String, unique: true, 'default': function(){ return randomString(8); } },
// ... other definitions
}
これは今のところうまく機能しますが、randomString関数から生成されたIDの重複が心配です。可能なIDは36^8あるので、今のところ問題はありません...しかし、可能なIDのセットがいっぱいになると、IDが重複しているために挿入コマンドが失敗するのではないかと心配しています。
明らかに、挿入を行う前にIDが取得されたかどうかを確認するために追加のクエリを実行できます...しかし、それは私を内部で泣かせます。
これを行うためのより良い方法があると確信していますが、ドキュメントには表示されていません。