注意:我已经看到了另一个问题并尝试了答案而没有运气.
我在MongoDB中有一个集合:
{ _id: 1, category_id: 1, time_added: 1234567890, name: "abc" }
Run Code Online (Sandbox Code Playgroud)
我需要找到category_id等于10的最后10个条目.声音简单?
collection.find({ 'category_id': 10 }, {}, { _id: -1, limit : 10}, function (e, d) {});
Run Code Online (Sandbox Code Playgroud)
但运行这个给我前 10条记录而不是最后10条.看起来像驱动程序优先"限制"而不是"排序"...我也尝试$natural和排序time_added.每当我从命令行运行相同的查询时 - 我得到了我需要的东西.这是我输入命令行的内容:
collection.find({ 'category_id': 10 }).sort({_id: -1}).limit(10)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?是否有另一种方法可以使用node.js执行此操作?
结果是node.js以与命令行界面相同的方式接受函数调用.每个函数都有最后一个可选参数作为回调函数.所以这段代码运行并返回正确的结果:
collection.find({ 'category_id': 10 }).sort({_id: -1}).limit(10, function (e, d) {})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |