javascript - .sort() 根本不工作( Mongoose )

标签 javascript node.js mongodb express mongoose

<分区>

.sort() 函数似乎对我根本不起作用,无论我做什么,它都不会排序。

我通过 Handlebars {{Book}} 显示输出

router.get("/", (req, res) => {
  Book.find({ _id: req.params.id })

    .sort({ 'chapters.orderIndex': 1 }) //wont sort 

    .then(books => {
      res.render("books/index", {
        books: books
      })
    });
});

我也试过:

.sort({ 'Book.chapters.orderIndex': 1 }) 

.sort({ 'Book.date': 1 })

.sort({ 'date': 1 }) //field from Book

.sort({ date: 1 })

还尝试使用 asc/desc 代替 1/-1

知道为什么 .sort() 不起作用吗?

最佳答案

请参阅 Mongoose 文档:

http://mongoosejs.com/docs/promises.html#queries-are-not-promises

Mongoose queries are not promises. They have a .then() function for co and async/await as a convenience. If you need a fully-fledged promise, use the .exec() function.

因此,为了建立上述 promise 执行,请看下面的示例代码:

router.get("/", (req, res) => {

    let query = Book.find({ _id: req.params.id })
    .sort({ 'chapters.orderIndex': 1 });

    let promise = query.exec();

    promise.then(books => {
        res.render("books/index", {
            books: books
        })
    });
});

关于javascript - .sort() 根本不工作( Mongoose ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50310214/

相关文章:

javascript - 如何在 require 中传递字符串/对象

java - Spring AbstractMongoEventListener 不触发

mongodb - 如何查询一个动态键——mongodb schema设计

javascript - 动态jquery问题

javascript - 在 XHTML 中使用 JavaScript 函数返回的 URL

javascript - 在 Typescript 中输入内容时遇到问题

javascript - 如何从 react 组件进行远程服务器调用?

javascript - 更新给定索引的数组值(mongoose,mongodb)

javascript - ionic 2 - 获取 window.scrollTop

java - 在java中创建动态组查询