BsonElement
古い名前を引き続き使用する場合は、次の属性を使用できます。
class Demo {
[BsonElement("Comment")]
public string Comments { get; set; }
}
その構文を使用すると、MongoDB C# ドライバーComments
は、ドキュメント内のフィールドのプロパティ/フィールドのデータを という名前のフィールドで検索するように指示されComment
ます。つまり、古い場所からのデータの移動/コピーについて心配する必要はありません。実際の BSON ドキュメント サイズを最小限に抑えながら、ソース コードでより長いフレンドリ名を使用できるようにするためによく使用されます (完全なプロパティ名は常にデータベース コレクションのドキュメントに格納されるため)。短縮するときは、たとえば次のように使用できます。
[BsonElement("c")]
public string Comments { get; set; }
一部の MongoDB ドライバーには、この機能がありません (そして、あるといいのですが!)。
次に、クラスに特別な属性を追加するだけで、クラスの未知の要素をすべて無視し、例外をスローしないようにすることもできます。
[BsonIgnoreExtraElements]
public Demo {
public string Comments { get; set; }
}
次に、という名前のフィールドComment
が見つかったが、C# クラスのプロパティと一致しない場合、それは無視されます。スキーマが変更されるため、開発中にこれを使用することがよくありますが、後で削除して、予期しないフィールドをキャッチできるようにします。
または、 を使用BsonClassMap
して同様の変更を行うこともできます。
BsonClassMap.RegisterClassMap<Demo>(cm => {
cm.AutoMap();
cm.SetIgnoreExtraElements(true);
});
完全な制御が必要な場合は、ここに記載されているさらにいくつかのオプションがあります。