在Mongoose中,如何过滤对象数组
问题:在Mongoose中,如何过滤对象数组 我有以下架构: var sampleSchema = new Schema({ name: String, dates: [{ date: Date, duration: Number }] }); 我需要根据以下规则过滤记录:如果日期之一晚于给定日期 date_begin,则保留记录,否则不要。 我的印象是 $gte 或 $lte 是我需要的功能,但
·
问题:在Mongoose中,如何过滤对象数组
我有以下架构:
var sampleSchema = new Schema({
name: String,
dates: [{
date: Date,
duration: Number
}]
});
我需要根据以下规则过滤记录:如果日期之一晚于给定日期 date_begin,则保留记录,否则不要。
我的印象是 $gte 或 $lte 是我需要的功能,但我找不到正确使用它们的方法。我试过了
sampleSchema.find({date_begin: {$gte: 'date'}});
或其中的一些变体,但我似乎无法使其工作。任何人都知道我应该如何做到这一点?
解答
要查询数组中的元素,使用$elemMatch:
SampleModel.find( { dates : { $elemMatch: { date : { $gte: 'DATE_VALUE' } } } } )
如果使用的是单查询条件,可以直接过滤:
SampleModel.find( { 'dates.date': { $gte: 'DATE_VALUE' } } )
更多推荐
已为社区贡献32870条内容
所有评论(0)