【发布时间】:2017-08-04 03:34:12
【问题描述】:
我有以下架构:
const userSchema = new Schema({
local: {
email: {type: String, unique: true, sparse: true, lowercase: true, trim: true, required: true},
password: {type: String, required: true},
},
username: {type: String, unique: true, lowercase: true, trim: true},
Items: [{
name: {type: String, trim: true},
createdAt: {type: Date, default: Date.now}
}]
});
我正在使用以下查询来检索所有项目:
User.findById(req.user.id, 'Items -_id', (err, user) => { ... });
返回以下内容:
{ Items:
[
{ name: 'test1',
_id: 58c70800a03d09a31bb7fc17,
createdAt: Mon Mar 13 2017 20:58:40 GMT+0000 (GMT) },
{ name: 'test2',
_id: 58c70826a03d09a31bb7fc18,
createdAt: Mon Mar 13 2017 20:59:18 GMT+0000 (GMT) }
]
}
我的问题是:如何编辑我的 mongoose 查询以返回 Items 数组内的对象,该数组根据 createdAt 属性按降序排序?也就是说,test2 出现在test1 上方。
(一些附加信息,平均每个用户的 items 数组长度为 3-10,并且我使用 Nodejs 作为后端,因此,在应用程序端对数组进行排序是可以忍受的,因为它很小由于 Nodejs 单线程性质,大小或效率太低?),谢谢。
【问题讨论】:
标签: arrays node.js mongodb sorting mongoose