Meteor,ChartsJS和MongoDB

时间:2017-03-14 19:36:23

标签: mongodb meteor chart.js meteorcharts

我想迭代MongoDB集合来获取图表标签,但我得到TypeError:undefined不是一个对象(评估'teams [i] .name')这里是我的代码:

class Node<E> extends AtomicReference<Node<E>> {
private volatile Node<E> prev;

final E element;

...

有人有什么建议吗?我的想法已经不多了。 先感谢您。

3 个答案:

答案 0 :(得分:1)

你可以这样做

var teamNames = Teams.find().map(
   function(team){
      return team.name;
   }
)

答案 1 :(得分:0)

teams的长度必须少于10件。如果teams[{name: "first"}],则teams[1]将返回undefined,您将收到该错误。您可以使用:

for (let i = 0; i < teams.length; i++)

解决这个问题。

您还可以在数组上map获取特定属性:

labels: teams.map(team => team.name),

答案 2 :(得分:0)

在Meteor中,Collection .find()函数返回cursor,然后您可以使用它来对集合项执行操作。在您的情况下,您将光标视为一个不正确的数组。有几种不同的方法可以解决这个问题。

1)使用.forEach()迭代光标。

var teamNames = [];

Teams.find().forEach(function (e) {
  teamNames.push(e.name);
});

2)使用.fetch()返回数组中所有匹配的文档,然后迭代它。

var teams = Teams.find().fetch();
var teamNames = [];

for(i = 0; i < teams.length; i++) {
  teamNames.push(teams[i].name);
}

3)使用.map()迭代调用所有项目的回调并返回数组的集合。

var teamNames = Teams.find().forEach(function (e) {
  return e.name;
});