我使用 BsonObject 搜索在 C# 中管理可扩展模式的最佳方法,该 BsonObject 可以在不构造包含每个键定义的对象类的情况下进行扩展。
该对象是创建一个文档存储,可以使用定义中的配置文件键、值、类型进行扩展。我在另一个项目中使用了 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
}