我有一个包含日期数组的模型。我使用 $gte
运算符作为条件来查询集合,其中日期数组中的所有元素都是 $gte
给定的日期。
例如我有这个文件:
{ dates: [
ISODate("2016-10-24T22:00:00.000+0000"),
ISODate("2017-01-16T23:00:00.000+0000")]
}
当我运行此查询 {dates: {$gte: new Date()}}
时,它会返回整个文档作为结果。但我想要一个结果,其中每个数组项都与我的查询匹配,而不仅仅是一个。
最佳答案
您可以使用 $not
来完成此操作以及比较条件的反转:
db.test.find({dates: {$not: {$lt: new Date()}}})
因此,这会匹配不存在 dates
元素的值小于当前时间的文档;换句话说,所有 dates
值都是 >= 当前时间。
关于arrays - 查询所有数组项都大于指定条件的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40360970/