mongoose 排序问题。
发布于 9个月前 作者 jeremy16601 519 次浏览

新手,换了mongoose之后,不知道如何根据时间排序。 或者问下,有什么好的办法 自己建立个id自增? 谢谢

7 回复

我这么写:Note.find({},null, {sort: [['_id’, -1]]}, callback); 报错:500 Error: Invalid sort() argument.

@carly1987 sort: {’_id’ : -1 , …} 这样呢

我的做法是新增一個 Mongoose plugin:

'use strict'

function timestamps(schema, options) {
  schema.add({
    create_at: { type: Date, default: Date.now },
    update_at: { type: Date, default: Date.now }
  })

  schema.pre('save', function (next) {
    this.update_at = new Date()
    next()
  })
}

module.exports = exports = timestamps

然後在每個 model 加上時間戳的寫法:

var timestamps = require('./timestamps')

var UserSchema = new mongoose.Schema({
  //
})

UserSchema.plugin(timestamps)

刚好昨天用到排序这个,也是查了好久才知道mongoose的用法 我是这样用的 db.find({'name':'hello'}).sort({'date':'asc'}).exec(callback)

是的,用 sort 這個 API

User.find({}).sort('create_at').exec(callback)
User.find({}).sort('-create_at').exec(callback)
User.find({}).sort({ create_at: 'asc' }).exec(callback)
User.find({}).sort({ create_at: -1 }).exec(callback)
回到顶部