各キーの定義を保持するオブジェクト クラスを構築せずに拡張できる BsonObject を使用して、C# で拡張可能なスキーマを管理する最良の方法を探しています。
このオブジェクトは、構成ファイルのキー、値、タイプを定義から使用して拡張できるドキュメント ストレージを作成します。私は別のプロジェクトで BsonArray ストレージを使用しましたが、実用的ではなく、私たちの場合、インデックスはあまり役に立ちません。オブジェクトは、最適なインデックス付けの説明とクエリのために、ダイナミクス キー値のリストのようなオブジェクトを構築します。
ありがとう。
//BsonArray method:
new BsonKeys()
{
Key = key,
Value = item,
Type = type
}
//--------------------------------------------
//get a cursor like : List<BsonKeys> list
//--------------------------------------------
//save method like:
//.Set("DynamicKeyValues", new BsonArray(list.Select(x => (BsonValue)x.ToBsonDocument())))
Document result :
{
ID:"some _id",
StaticKey:"Some static",
...
DynamicKeyValues
[
{Key="keyname1" , value="Value1", type="String"},
{...},
{Key="keynameN" , value="ValueN", type="String"}
]
}
//-------------------------------------------
//Searching like :
{
ID:"some _id",
StaticKey:"Some static",
...
DynamicKeyValues
{
Key:value,
Key2:Value2,
...
KeyN:valueN
}