从文档中获取子元素
本文关键字:元素 获取 文档 | 更新日期: 2023-09-27 18:35:50
我正在尝试使用 c# 连接器从我的文档中获取子元素。
我的文档看起来像这样:
// sample document
{
"_id":
{
"$oid":"myid"
},
"Somedata":"This is a test",
"object1":
{
"name":"myname",
"object2":
{
"Text":"Hello World!"
}
}
}
我有一个映射到这个的类,看起来像下面这样:
[BsonIgnoreExtraElements]
public class MyDataClass
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("object1.object2.Text")]
public string Text;
[BsonElement("Somedata")]
public string Data;
}
查询运行时,将填充 id 和数据变量,但不填充文本变量。我的猜测是,这是因为它在一个物体内部,但我不确定我哪里出错了。
BsonElement
接受参数作为字段名称的根级别名称,例如"field1",并且不能传递嵌套名称(使用点表示法命名,例如"field1.nested_field")。您必须为子文档定义一些类
public class MyDataClass
{
public ObjectId _id { get; set; }
public string Somedata { get; set; }
public Object1 object1 { get; set; }
}
public class Object1
{
public string name { get; set; }
public Object2 object2 { get; set; }
}
public class Object2
{
public string Text { get; set; }
}
如果不想为子文档定义新类,则必须编写自己的 mongo Serializer
并DeSerializer
用于MyDataClass