我尝试了这个mongoose-query并且不知道为什么这种方法不起作用(在stackoverflow上找到语法所以不知道我再次做错了什么)。 试图用find取代exec,也没办法。
model.find({'id':req.params.id}).sort({date:-1}).limit(10).exec(function(err, jsonarray){...};
我的架构和jsondata就是这样:
var messageSchema = new Schema({
id: Number,
name: Schema.Types.Mixed,
type: Schema.Types.Mixed,
message:
{
messagetype: String,
timestamp: Number,
messagestatus: String
}
}, {collection: 'test'});
否则可以通过message.timestamp对其进行排序,但我不知道如何... 提前谢谢。
甚至尝试过这样......我被卡住了。
json.sort(function(a, b) {
return parseFloat(a.message.timestamp) - parseFloat(b.message.timestamp);
});
更新:数据看起来像这样:
[ { id: 215456740,
name: 'Max',
type: 'freezer',
_id: 57513933c25d06630a3ef887,
__v: 0,
message:
{ messagetype: 'Standard message',
timestamp: 1464940851375,
messagestatus: 'red'
}
},
{ id: 215456740,
name: 'Tobi',
type: 'center',
_id: 5751393bc25d06630a3ef888,
__v: 0,
message:
{ messagetype: 'Standard message',
timestamp: 1464940859265,
messagestatus: 'white'
}
}]
是的,它是一个Id的有意,多条消息。 这是输出
答案 0 :(得分:0)
查询正在对不存在的属性date
进行排序:
.sort({ date : -1 })
相反,试试这个:
.sort({ 'message.timestamp' : -1 })
答案 1 :(得分:0)
.sort({_ id:-1})
使用自动处理的_id,因为它具有嵌入的日期。事后工作。