Node.js 在Mongoose中,如何过滤对象数组

Node.js 在Mongoose中,如何过滤对象数组,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有以下模式: var sampleSchema = new Schema({ name: String, dates: [{ date: Date, duration: Number }] }); 我需要根据以下规则过滤记录:如果其中一个日期晚于给定的开始日期,则保留记录,否则不保留 我觉得$gte或$lte是我需要的功能,但我找不到正确使用它们的方法。我试过了 sampleSchema.find({date_begin: {$gte: 'date'}}); 或

我有以下模式:

var sampleSchema = new Schema({
  name: String,
  dates: [{
    date: Date,
    duration: Number
  }]
});
我需要根据以下规则过滤记录:如果其中一个日期晚于给定的开始日期,则保留记录,否则不保留

我觉得$gte或$lte是我需要的功能,但我找不到正确使用它们的方法。我试过了

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

或者是它的一些变体,但我似乎无法让它工作。任何人都知道我应该怎么做吗?

要查询数组中的元素,请使用:

SampleModel.find( { dates : { $elemMatch: {  date : { $gte: 'DATE_VALUE' } } } } )
如果您使用的是,您可以直接筛选:

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