【发布时间】:2016-06-20 13:26:38
【问题描述】:
正如标题所述,我正在尝试访问嵌套BsonArray 中的第一个对象。我是 mongodb 的新手,所以仍在尝试解决它。
无论如何,假设我有以下数据:
{
"_id" : ObjectId("111111dasd1asdasd1asd1"),
"data" : [
{
"name":"John Smith",
"push ups":20
},
{
"name":"John Smith",
"push ups":22
},
{
"name":"John Smith",
"push ups":25
}
]
}
我正在尝试通过获取_id 和name 来创建一个新的BsonDocument,在其中我为查询提供了_id 的参数,但我只是抓住了name 中的任何内容而不给它一个参数。
即。
{
"connect":ObjectId("111111dasd1asdasd1asd1", //assigning the value of id from the original document to this field
"name":"John Smith"
}
由于我的 mongo 集合的结构使得每个 Bsondocument 只处理一个唯一的 name,因此我不想循环遍历原始文档示例的 data BsonArray。我只想访问name 拥有的任何值并继续前进。
这是我当前的代码,试图从BsonDocument 中的id 和name 的值创建一个新对象
(注意:这是在提供 id 参数的方法中)。
var query = Query.EQ("_id", id);
var tempRecord = existing.FindOne(query);
var record = new
{
name = tempRecord["data"]["name"],
connect = id
};
result = record.ToBsonDocument();
return result;
目前tempRecord 正在正确存储从我传递的查询返回的数据。但是,如何正确访问 tempRecord 中 data 数组的 name 字段?
【问题讨论】:
-
查看this并使用切片实现投影
标签: c# mongodb mongodb-query