Meteor:从现有集合的一个属性创建一个新集合

时间:2015-07-01 17:15:40

标签: javascript mongodb meteor

在我的Meteor应用程序中,我已经有一个集合fullList = new Mongo.Collection('fullList');,它是一个对象数组,每个对象都有几个属性,例如Color,Factor和Tot。

我想创建一个新集合 - 或者至少只是一个新数组 - 即所有Tot值的数组。如果有意义的话,伪代码就像newList = fullList.Color一样。

我知道如何使用{{Color}}在html中显示一个属性,但我似乎无法用JavaScript做任何事情。

如果它是相关的,我想要这个数组的原因是我想使用D3.js来表示这些数据。

1 个答案:

答案 0 :(得分:1)

听起来您的集合是一组文档(在Mongo术语中),每个文档都是一个序列化对象,而不是实际存储数组的单个文档集合。在这种情况下,您应该能够在集合游标上使用内置的map函数。文档在这里: http://docs.meteor.com/#/full/map

这看起来像(仅使用回调中的document参数):

fullList = new Mongo.Collection('fullList');
newlist = fullList.find().map(function(document) {
  return document.Tot;
});

map()将迭代集合中的所有文档 - 因为没有参数传递给find() - 并且对于每个文档,将一个项添加到数组(分配给newList),是回调函数返回的值,在本例中为Tot