node.js 排序对象(mongoose、express、ejs)

标签 node.js mongodb express object ejs

我在对博客应用程序的索引中的数据对象进行排序时遇到此问题。 我有一个基于 Express 使用 ejs 和使用 mongoose 的 mongoDB 的博客应用程序。 我想要的是对结果进行排序,以便最新的帖子从顶部开始。此时它会在顶部显示第一篇文章。

app.js/ Mongoose 架构

blogSchema = new mongoose.Schema({
  title: String,
  image: String,
  body: String,
  created: {type: Date, default: Date.now}
});
var Blog = mongoose.model("Blog", blogSchema);

app.js/索引路由

app.get("/blogs", (req, res)=>{
  Blog.find({}, (err, blogs)=>{
    if(err){
      console.log("Error!");
      console.log(err);
    } else {
        res.render("index", {blogs: blogs});
    }
  });
});

index.ejs foreach

<% blogs.forEach(function(blog){ %>
  <img alt="img" src="<%= blog.image %>">
  <a href="/blogs/<%= blog._id %>"><%= blog.title %></a>
  <span><%= blog.created.toDateString() %></span>
  <p><%- blog.body.substring(0, 200) %>...</p>
  <a href="/blogs/<%= blog._id %>">Read More</a>
<% }) %>

有人知道我该怎么做吗?

最佳答案

您可以使用Mongoosesort()方法:

Blog.find((err, blogs) => {
  if (err) {
    console.log(err);
  } else {
    res.render("index", { blogs: blogs });
  }
}).sort({ created: 'desc' });

关于node.js 排序对象(mongoose、express、ejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920446/

相关文章:

node.js - 关闭并重新打开终端后如何访问正在运行的nodemon脚本?

javascript - 使用 AngularJS 在客户端初始化 Braintree 支付?

linux - Linux PHP 服务器支持 Node.js 吗?

javascript - 网页抓取 - Nightmare js 和请求

mongodb - Spring Boot Application Pod无法在Kubernetes集群上找到mongodb Pod

javascript - 结合 AngularJS 了解 Express 路由(使用mean.js 样板)

node.js - Node JS mongoose 查询不产生结果

mongodb - Grails MongoDB查找

node.js - 如何在expressjs 4.0中设置marko模板引擎

node.js - 如何使用 Mocha 测试集群 Express 应用程序?