简体   繁体   中英

To use Mongoose find() with sort() and limit()

I want to get part of the data and it works, But when I tried to use limit() & sort() query, it's not working.

I want five data sorted by date. And it should be only 'login bio avatar_url' data. to reduce data.

But there also no error message, so I cannot find where the error from.

[My Code]

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
    })
  })
});

The structure of my data looks like this.

[DATA]

{
    "_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"
}

When I tried to access / path, console only shows the this log.
在此处输入图像描述

Solved with this code. I think it's sequence problem

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
    })
  })
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM