【问题标题】:To use Mongoose find() with sort() and limit()将 Mongoose find() 与 sort() 和 limit() 一起使用
【发布时间】:2020-05-17 14:56:24
【问题描述】:

我想获取部分数据,它可以工作,但是当我尝试使用 limit() 和 sort() 查询时,它不工作。

我想要五个按日期排序的数据。它应该只是“登录生物头像_url”数据。减少数据。

但也没有错误信息,所以我找不到错误来自哪里。

[我的代码]

let User = require('../lib/models/userModel');
router.get("/", function (req, res, next) {
  console.log(`HOME ROUTE!`);
  User.find({}).limit(5).sort({
    created_at: -1
  }), 'login bio avatar_url', (function (err, result) {
    if (err) return handleError(err);
    console.log(result);
    res.render('main', {
      dataarray: result,
      _user: req.user
    })
  })
});

我的数据结构是这样的。

[数据]

{
    "_id": {
        "$oid": "5ebbcc92ae44dd149c12faf3"
    },
    "login": "apple",
    "id": 10639145,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjEwNjM5MTQ1",
    "avatar_url": "https://avatars0.githubusercontent.com/u/10639145?v=4",
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [Cut useless data]
    "name": "Apple",
    "company": null,
    "blog": "https://apple.com",
    "location": "Cupertino, CA",
    "email": null,
    "hireable": null,
    "bio": null,
    "public_repos": 85,
    "public_gists": 0,
    "followers": 0,
    "following": 0,
    "created_at": "2015-01-21T20:19:28Z",
    "updated_at": "2020-05-01T14:38:33Z"
}

当我尝试访问 / 路径时,控制台只显示此日志。

【问题讨论】:

  • 您是否在错误处理程序中尝试过console.log(err)?那个“崩溃的孩子”文本来自哪里?
  • 是supervisor包的,和他们没有关系:)

标签: node.js mongodb mongoose


【解决方案1】:

用这段代码解决了。我认为是顺序问题

let User = require('../lib/models/userModel');
router.get("/", function (req, res, next) {
  console.log(`HOME ROUTE!`);
  User.find({},'login bio avatar_url', {limit:5}).sort({created_at:-1}).exec(function (err, result) {
    if (err) console.log(err);
    console.log(result);
    res.render('main', {
      dataarray: result,
      _user: req.user
    })
  })
});

【讨论】:

    猜你喜欢
    • 2016-02-28
    • 2016-08-08
    • 2021-05-16
    • 2018-07-02
    • 2019-03-17
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多