我有以下架构:
var VisionsystemSchema = new mongoose.Schema({
linenumber: {
type: String,
index: true,
unique: true
},
name: String,
rois: [
{
name: String,
history: [Date, Number]
}
]
});
对于rois数组中的每个元素,我有一个带有[date,number]元组的历史值数组。我如何通过其Date first元素订购历史数组?
答案 0 :(得分:2)
您可以使用以下聚合查询。
$unwind
rois
数组,然后按第一个元素排序文档,然后$group
重新排序_id
以获取排序数组。
db.col.aggregate([
{"$unwind":"$rois"},
{"$sort":{"rois.history.0":-1}},
{"$group":{"_id":"$_id","rois":{"$push":"$rois.history"}}}
])