无法在nodejs和mongodb中对数据库进行排序

时间:2017-03-16 21:58:07

标签: node.js mongodb

我无法将数据库从最后一个排序到第一个。这就是我所拥有的:

Index.js

var express = require('express');
var router = express.Router();
var mongo = require("mongodb");
var db = require("monk")("localhost/nodeblog");

router.get('/', function(req, res, next) {
  var db = req.db;
  var posts = db.get('posts');

  posts.find({},{}, function(err, posts){
    res.render("index", {posts: posts})
  }).sort({_id: -1}).exec(function(err, docs){
    if(err) throw err
    console.log(docs)
  })

}); 

Index.ejs

<% include ./layout/header %>

<% posts.forEach(function(x) { %>
    <h1 class="ui header"><a href="/post/show/<%= x._id %>"><%= x.title %></a>
    <div class="sub header">Posted in <%= x.categories %> by <%=x.author%> on <%= moment(x.date).format("MM-DD-YYYY")%></div>
</h1>
<h4 clas="ui header">
<%= x.body %>
</h4>
<div class="ui teal button"><a href="/post/show/<%= x._id %>"> Read More </a></div>

但是我收到了错误!

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定错误是什么,但看起来你在错误的地方有一些逻辑。

尝试一下......

var express = require('express');
var router = express.Router();
var mongo = require("mongodb");
var db = require("monk")("localhost/nodeblog");

router.get('/', function(req, res, next) {
  var db = req.db;
  var posts = db.get('posts');

  posts.find({}).sort({_id: -1}).exec(function(err, docs){
    if(err) throw err
    console.log(docs)
    res.render("index", {posts: docs})
  })

});