2015-11-03 87 views
0

我用两种方式来从我收集的文件,第一个:

db.comments.find({"nid" : "req.body.data"}); 

返回许多文档,如:

{ 
    "nid" : 20404, 
    "_id" : ObjectId("5638ba331294943d3d0a092b"), 
    "uid" : 1937, 
    "posted" : ISODate("2015-11-03T13:44:19.811Z"), 
    "text" : "txt", 
    "title" : "Test nid 2", 
    "stars" : 3, 
    "__v" : 0 
} 

, 而对于另一个查询我需要使用aggregate和查询:

var pipleline = [ 
      {$match: {nid:req.body.data}} 

     ]; 
     Comments.aggregate(pipleline, function(err, rank){ 
       if(err) { 
        res.send("Error", String(err)); 
       } 
       res.send(rank); 
      }); 

返回[] - 空数组。 任何想法?

+2

'req.body.data'的价值是什么? – chridam

+0

数字,与解析有关吗? –

+0

当你检索'req.body.data'时,你需要让你有一个值。使用'console.log'来确保有一个实际的'nid'被保存。 – inspired

回答

0

你可以使用内置函数链接猫鼬提供。除了比赛之外,它还有排序,项目,小组以及其他一些我不知道的事情。更多信息here

 Comments.aggregate().match({nid:req.body.data}) 
     .exec(function(err,rank){ 
      if(err) { 
       res.send("Error", String(err)); 
      } 
      res.send(rank); 
     });