C# 是否可以从数组中仅检索子文档的一个特定字段?
假设我在MongoDB集合上有以下文档结构:C# 是否可以从数组中仅检索子文档的一个特定字段?,c#,asp.net,arrays,mongodb,projection,C#,Asp.net,Arrays,Mongodb,Projection,假设我在MongoDB集合上有以下文档结构: { "Applications" : [{ "JoinDate" : new Date("10/2/2013 18:06:30"), "Key" : "shtube", "Roles" : ["Administrator", "Moderator"] }], "Comment" : "Cool", "ConfirmationKey" : "981c69fe-6fff-47d6-bb82-3b5f
{
"Applications" : [{
"JoinDate" : new Date("10/2/2013 18:06:30"),
"Key" : "shtube",
"Roles" : ["Administrator", "Moderator"]
}],
"Comment" : "Cool",
"ConfirmationKey" : "981c69fe-6fff-47d6-bb82-3b5f1deeef25",
"CreationDate" : new Date("8/2/2013 17:43:42"),
...
}
如何使用SetFields()方法从MongoCursor检索(针对性能问题)仅“角色”字段?此时我只知道检索子文档和访问“角色”。但我不需要完整的子文档信息 您可以使用投影使用点表示法(使用shell)仅提取所需的字段: 在上面的示例中,它只是返回包含Applications.Roles结构的文档 你可以阅读更多关于投影的内容 仅供参考:使用LINQ无法有效地从C#进行投影。它在客户端本地进行投影 另一种选择是使用$elemMatch(但是,在本例中,如果您不执行特定查询,它可能不适合您的需要)
db.myCollection.find({ "Applications.Roles" : { $exists: true } },
{ "Applications.Roles" : 1 })