从文档中获取子元素
Get a child element from document
我正在尝试使用 c# 连接器从我的文档中获取子元素。
我的文档看起来像这样:
// sample document
{
"_id":
{
"$oid":"myid"
},
"Somedata":"This is a test",
"object1":
{
"name":"myname",
"object2":
{
"Text":"Hello World!"
}
}
}
我有一个映射到这个的 class,看起来像下面这样:
[BsonIgnoreExtraElements]
public class MyDataClass
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("object1.object2.Text")]
public string Text;
[BsonElement("Somedata")]
public string Data;
}
查询运行时,会填充 id 和 Data 变量,但不会填充 Text 变量。我的猜测是这是因为它在对象内部,但我不确定我哪里出错了。
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
14=]
我正在尝试使用 c# 连接器从我的文档中获取子元素。
我的文档看起来像这样:
// sample document
{
"_id":
{
"$oid":"myid"
},
"Somedata":"This is a test",
"object1":
{
"name":"myname",
"object2":
{
"Text":"Hello World!"
}
}
}
我有一个映射到这个的 class,看起来像下面这样:
[BsonIgnoreExtraElements]
public class MyDataClass
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("object1.object2.Text")]
public string Text;
[BsonElement("Somedata")]
public string Data;
}
查询运行时,会填充 id 和 Data 变量,但不会填充 Text 变量。我的猜测是这是因为它在对象内部,但我不确定我哪里出错了。
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
14=]