.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()
无法正常工作?
答案 0 :(得分:4)
参见Mongoose Docs:
http://mongoosejs.com/docs/promises.html#queries-are-not-promises
Mongoose查询不是承诺。为方便起见,它们有co和async / await的.then()函数。如果您需要完全成熟的承诺,请使用.exec()函数。
因此,为了建立上述承诺执行,请看下面的示例代码:
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
})
});
});