【问题标题】:Filter a Meteor Collection过滤流星集合
【发布时间】:2016-05-05 14:54:33
【问题描述】:

我有一个 mongoDB (meteor) 集合,它使用 fetch 方法返回一个对象集合。数组中的每个返回对象都是这种形式

  {quiz : {_id : 1,
           title : 'The days of our lives'}
   user : {name : 'Jamie'}
   score : 34}

我想过滤查询结果并按测验标题分组,以便我可以根据测验标题对所有分数进行分组。任何帮助表示赞赏

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    最好的方法可能是利用测验_id。您可能会遇到两个标题相同但测验不同的情况。然后你的小组会变得一团糟。因此,只需使用点符号并找到应用于该测验的所有答案,如下所示:

    var answersByQuiz1 = Answers.find({
        'quiz._id': 1
    }).fetch();
    

    如果你想要几组答案,你可以这样做:

    var answers = Answers.find({
        'quiz._id': {
            $in: [1,2,3,4,5,6,7] // ids of concern
        }
    }).fetch();
    

    并使用例如underscorejs将它们分组到客户端:

    _.groupBy(answers, function(answer){ return answer.quiz._id; });
    

    【讨论】:

      【解决方案2】:
      var filter = Collectionname.find({'quiz.title': 'The days of our lives'}).fetch();
      console.log(filter);
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 2017-03-14
      相关资源
      最近更新 更多