使用$样品的MongoDB和Node.js的总未返回文档
我是新来的NodeJS和MongoDB,我试图让一个聚合函数运行将选择从数据库中随机文档,并将其返回。我看了所有在互联网上找出我做错了什么,从我可以看到我的代码看起来像它应该。然而,对于某些原因,当我尝试打印结果到控制台,它给了我一个聚集光标对象,我无法找到我想要内任何地方的文件。这是我为聚合函数的代码。
//get a random question
route.get('/question/random', function (req, res) {
database.collection('questions').aggregate(
[ { $sample: { size: 1} } ],
function(err, result) {
console.log(result);
})
})
回答如下:
这是因为aggregation method返回AggregationCursor除非你遍历它不会返回任何文档。
对于一个简单的重复,你可以这样做:
database.collection('questions').aggregate([{$sample: {size: 1}}]).forEach(console.log);
光标上的forEach()
方法将遍历它,并且在该示例将其打印到控制台。