MongoDB:返回所有子文档的列表

时间:2016-01-20 21:48:39

标签: arrays mongodb meteor nested

我正在努力学习Meteor / Mongo,但每当你想要取得进步时,一件“简单的事情”似乎完全无法实现......

我有一个非常简单的文件:

_id   : abcd
field : xyz
subdoc [
  {_id: 123, email: abc, name: abc}
  {_id: 234, email: abc, name: xyz}
  {_id: 853, email: abc, name: pmu}
]

我想返回所有子文档的列表。 换句话说,我想在我的HTML模板中使用“each”获得这样的列表:

  _id: 123    email: abc    name: abc
  _id: 234    email: abc    name: xyz
  _id: 853    email: abc    name: pmu

但是我完全无法用.dot表示法获得任何结果。 任何线索?

非常感谢..

1 个答案:

答案 0 :(得分:1)

myCollection.find({_id: 'abcd'}).fetch().forEach(function(item) { return item.subdoc; });
使用findOne

甚至更简单
myCollection.findOne({_id: 'abcd'}).subdoc;

注意:

在2种情况下,_id只返回一个文档(因为_id是唯一的),您将获得子文件数组。

如果您使用第一个解决方案并且您的查询返回多个文档,那么您将获得一个数组数组。

如果您想要的是阵列数组中的平面数组,则需要展平该数组

使用下划线

flattened = _.flatten(nestedArray)