hasNext不在javascript中处理集合

soh*_*ifa 1 javascript mongodb meteor

我在javascript中有以下代码,它检索两行:

 var raceCursor = RacesCollection.find({eventId: "e1"});
    var race;
    while(raceCursor.hasNext()){
    race = raceCursor.next();                   
    console.log(race.raceName);
    }
Run Code Online (Sandbox Code Playgroud)

似乎没有错,但它显示:

Uncaught TypeError: Object [object Object] has no method 'hasNext' 在JavaScript控制台中.

我在这里缺少什么?

MongoDB方法是否需要在javascript中进行特殊导入,以便在集合中使用?

该系列是:

RacesCollection  = new Meteor.Collection("RacesCollection");
RacesCollection.insert({raceId:"r1", eventId:"e1", raceName:"Moto race 1", status:"statusDetail"});
RacesCollection.insert({raceId:"r2", eventId:"e1", raceName:"Moto race 2", status:"statusDetail"});
Run Code Online (Sandbox Code Playgroud)

任何建议都会得到满足.谢谢..

sou*_*eck 7

根据Meteor docs,迭代光标的正确方法是cursor.forEach().游标也没有hasNext()next()方法.

所以在你的情况下它应该是:

var raceCursor = RacesCollection.find({eventId: "e1"});

raceCursor.forEach(function(race) {
    console.log(race.raceName);    
});
Run Code Online (Sandbox Code Playgroud)

  • @Rafael那是mongo游标,不是流星游标 (3认同)
  • 我想知道为什么 mongodb 文档显示了一个带有 cursor.hasNext() 和 cursor.next() 的例子。http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ (2认同)