sky*_*ake 2 javascript mongoose mongodb node.js express
该.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
})
});
});
Run Code Online (Sandbox Code Playgroud)
我也试过:
.sort({ 'Book.chapters.orderIndex': 1 })
.sort({ 'Book.date': 1 })
.sort({ 'date': 1 }) //field from Book
.sort({ date: 1 })
Run Code Online (Sandbox Code Playgroud)
也尝试过asc/desc而不是使用1/-1
知道为什么.sort()不起作用吗?
请参阅猫鼬文档:
http://mongoosejs.com/docs/promises.html#queries-are-not-promises
Mongoose 查询不是承诺。为了方便起见,它们有一个用于 co 和 async/await 的 .then() 函数。如果您需要一个成熟的承诺,请使用 .exec() 函数。
所以为了建立上面提到的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
})
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2730 次 |
| 最近记录: |