アプリケーションはMongoのGuidフィールドを保持し、最終的にBinDataとして保存されます。
"_id" : new BinData(3, "WBAc3FDBDU+Zh/cBQFPc3Q==")
この場合の利点はコンパクトさであり、アプリケーションのトラブルシューティングが必要なときに欠点が現れます。GUIDはURLを介して渡され、Mongoコンソールに移動するときに常にBinDataに変換するのは少し面倒です。
サイズの増加に加えて、Guidを文字列として格納することの欠点は何ですか?1つの利点は、トラブルシューティングが簡単なことです。
"_id" : "3c901cac-5b90-4a09-896c-00e4779a9199"
C#の永続エンティティのプロトタイプは次のとおりです。
class Thing
{
[BsonIgnore]
public Guid Id { get; set; }
[BsonId]
public string DontUseInAppMongoId
{
get { return Id.ToString(); }
set { Id = Guid.Parse(value); }
}
}