【发布时间】:2015-10-30 12:20:55
【问题描述】:
我在猫鼬中有一个检查模型:
var InspectionSchema = new Schema({
business_id: {
type: String,
required: true
},
score: {
type: Number,
min: 0,
max: 100,
required: true
},
date: {
type: Number, // in format YYYYMMDD
required: true
},
description: String,
type: String
});
InspectionSchema.index({business_id: 1, date: 1}, {unique: true});
可能对同一个业务进行多次检查(每个业务由一个唯一的业务 ID 表示)。但是,每个企业每天检查一次的限制,这就是为什么在 business_id + date 上有一个唯一索引。
我还在 Inspection 对象上创建了一个静态方法,给定一个 business_ids 列表,该方法检索基础业务的所有检查。
InspectionSchema.statics.getAllForBusinessIds = function(ids, callback) {
this.find({'business_id': {$in: ids}}, callback);
};
此函数获取请求的业务的所有检查。但是,我还想创建一个函数,该函数仅获取每个 business_id 的最新检查。
InspectionSchema.statics.getLatestForBusinessIds = function(ids, callback) {
// query to get only the latest inspection per business_id in "ids"?
};
我该如何实现这个?
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query aggregation-framework