使用node.js从MongoDB中选择最后N条记录

时间:2013-11-29 23:19:02

标签: node.js mongodb

注意:我已经看到了other question并且没有运气就尝试了答案。

我在MongoDB中有一个集合:

{ _id: 1, category_id: 1, time_added: 1234567890, name: "abc" }

我需要找到category_id中等于 10 的最后10个条目。声音简单吗?

collection.find({ 'category_id': 10 }, {}, { _id: -1, limit : 10}, function (e, d) {});

但是运行这个给了我第一个 10个记录而不是最后10个。看起来像驱动程序优先“限制”而不是“排序”......我也尝试使用$natural和在time_added上排序。每当我从命令行运行相同的查询时 - 我得到了我需要的东西。这是我在命令行中键入的内容:

collection.find({ 'category_id': 10 }).sort({_id: -1}).limit(10)

我做错了什么?是否有另一种方法可以使用node.js执行此操作?

1 个答案:

答案 0 :(得分:7)

结果node.js以与命令行界面相同的方式接受函数调用。每个函数都有最后一个可选参数作为回调函数。因此,此代码运行并返回正确的结果:

collection.find({ 'category_id': 10 }).sort({_id: -1}).limit(10, function (e, d) {})