YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Simplified subtitles

← Project Operator - Data Wranging with MongoDB

Get Embed Code
4 Languages

Showing Revision 1 created 08/27/2016 by Udacity Robot.

  1. 现在
  2. 我要继续讲一下投影运算符
  3. 在投影中 需要注意的几点是
  4. 我们可以利用投影来包括原文件中的域
  5. 记住 投影每次只能处理一个文件
  6. 我们其实是在利用投影进行数据构形
  7. 最简单的构形就是
  8. 在使用投影的阶段接收到的各文件中
  9. 设定我们想要包括哪一个域并将其传递给下一个阶段
  10. 利用投影
  11. 我们可以插入计算域
  12. 例如 比例 值
  13. 在这里 我们就要针对这个示例计算比例
  14. 我们还可以对域进行重命名
  15. 最后 我可以进行大规模的数据构形
  16. 为此 我可以创建含有子文件的域
  17. 这些子文件是在它们进入使用投影运算符的阶段时
  18. 由文件中的高级域构成的
  19. 我们再回来看一下代码
  20. 看看我们是如何使用投影的
  21. 记住 我们在这里要解决的问题是
  22. 找出被关注人数与朋友数比例最高的用户
  23. 这里的代码很直白
  24. 我们就是从用户子文件中抽取网名域
  25. 同样地 我们在这里使用了美元符号
  26. 因为 它不应该被视为字符串
  27. 我们告诉 mongoDB
  28. 我们想要的是
  29. 在用户子文件的网名域中
  30. 找到每个文件的值
  31. 所以 这个阶段传递出的每个文件
  32. 都会拥有一个网名域
  33. 这个域是由每个输入文件的值构成的
  34. 现在 我们来看一下
  35. 投影阶段的这一部分
  36. 我们要创建的是
  37. 这个阶段输出的比例域和文件
  38. 而这个比例域的值就是
  39. 朋友数除以被关注人数的值
  40. 也就是 在这里计算这个值
  41. 记住 在我们查看的这些文件中
  42. 朋友是我关注的人数 而不是关注我的人
  43. 我们再次浏览用户子文件
  44. 我们要抽出被关注人的数量
  45. 以及朋友的数量
  46. 这里同样要利用美元运算符
  47. 表示我们想要的是这些项的值
  48. 然后 我们要用除运算符
  49. 来计算两个值的比例
  50. 这个值会构成
  51. 使用投影运算符的这个阶段输出的
  52. 各文件的比例域值
  53. 当我们到达这一阶段时
  54. 所有文件都会拥有两个域 即比例域和网名域
  55. 然后 我们要根据比例
  56. 将它们按降序排列
  57. 之后 将结果限制为我们看到的第一个文件
  58. 我们运行一下这个代码
  59. 同样地 聚合查询的输出始终是一个单独的文件
  60. 我们想要的结果
  61. 总会出现在结果域中 它是一个数组值域
  62. 在这里的推文集合中
  63. 被关注人数与朋友数比例最高的用户是 Twitterific
  64. 其实 这是一个推特应用
  65. 即使你现在查看 Twitterific 在推特上的页面
  66. 你也会发现 关注它的人大概有近50万人
  67. 但它只关注了14个人
  68. 所以 它的被关注人数与朋友数比例很高
  69. 在这个例子中 我们仍关注了 $match 运算符 它是一个过滤器
  70. 还有 $project 运算符 它属于构形运算符
  71. 我们可以进行的运算还有很多种
  72. 这里还有排序和限制运算符
  73. 所以 在这里 我们的管道有四个阶段
  74. 在结束之前
  75. 我还要说一点
  76. 我们可以利用投影运算符进行多种表达
  77. 如果我们看一下 MongoDB 的文件
  78. 这里有很多可以使用的算数运算符
  79. 以及字符串运算符和日期运算符等等
  80. 这是文件中聚合表达运算符的页面
  81. 我希望你能在这里
  82. 查找在使用投影时可以运用的不同运算符
  83. 以及其它的聚合框架运算符
  84. 讲师注释中有这个页面的链接