Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以从数组中仅检索子文档的一个特定字段?_C#_Asp.net_Arrays_Mongodb_Projection - Fatal编程技术网

C# 是否可以从数组中仅检索子文档的一个特定字段?

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

假设我在MongoDB集合上有以下文档结构:

{
  "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 })