【问题标题】:hasNext not working on collection in javascripthasNext 不适用于 javascript 中的集合
【发布时间】:2012-10-19 07:42:52
【问题描述】:

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

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

看起来没什么问题,但它显示:

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"});

任何推荐都会被采纳。谢谢..

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

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

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

    var raceCursor = RacesCollection.find({eventId: "e1"});
    
    raceCursor.forEach(function(race) {
        console.log(race.raceName);    
    });
    

    【讨论】:

    • 我想知道为什么 mongodb 文档显示了一个带有 cursor.hasNext() 和 cursor.next() 的示例。 docs.mongodb.org/manual/tutorial/…
    • @Rafael 这是 mongo 光标,而不是流星光标
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2019-09-14
    • 2021-06-18
    相关资源
    最近更新 更多