2013-05-01 72 views
3

的数组我有以下模式:在猫鼬,如何筛选对象

var sampleSchema = new Schema({ 
    name: String, 
    dates: [{ 
    date: Date, 
    duration: Number 
    }] 
}); 

我需要根据以下规则过滤器中的记录:如果日期中的一个比一个给定的日期晚date_begin,保持记录,否则,不要。

我有$ GTE或$ LTE是我所需要的功能的印象,但我不能找到一种方法,正确地使用它们。我试过

sampleSchema.find({date_begin: {$gte: 'date'}}); 

或其中的一些变体,但我似乎无法使其工作。任何人有我应该怎样做到这一点的想法?

回答

5

要执行查询的元素的内部阵列,$elemMatch用于:

sampleSchema.find({ dates : { $elemMatch: { date : { $gte: 'DATE_VALUE' } } })