node.js – 在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' } } } } )

如果你使用的是single query condition,你可以直接过滤:

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

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...