Meteor:如何从集合中提取第一个项目的ID

mar*_*cks 1 meteor

我有一个流星集合,想要得到第一个项目的ID.查询有一个限制1子句,我只想要第一个项目的id(如果有的话).我无法弄清楚如何编码.

这是我的查询.

  var myGames = Games.find(
     {
       game_minutes: {$gt: MinutesSinceMidnightNow},
       court_id: court,
       game_date: {$gt: lastMidnight}
       },
       {
         sort: { "game_minutes": 1},
         limit: 1
       });
Run Code Online (Sandbox Code Playgroud)

然后,如果我迭代结果,我的应用程序将进入比赛.

   myGames.forEach(function (game) {

     gameId = game._id;

     console.log('gameId: ' + gameId );

  });
Run Code Online (Sandbox Code Playgroud)

我知道查询正在运行并且当前正在返回记录,但我无法弄清楚如何访问记录.

Ada*_*ski 7

find()返回一个游标.而不是使用将从光标获取所有数据到数组的forEach用途fetch.所以在你的情况下:

var id = myGames.fetch()[0]._id;
Run Code Online (Sandbox Code Playgroud)

(当您确定数据存在时.否则检查数组是否为空)

  • 如果你只想获取一个文档,那么应该使用`findOne(selector)`而不是`find(selector).fetch()[0]`. (2认同)