arrays - 查询所有数组项都大于指定条件的地方

标签 arrays node.js mongodb mongoose mongodb-query

我有一个包含日期数组的模型。我使用 $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/

相关文章:

java - 在java中比较单词中的单词

PHP 比较数据库中的 2 个数组,如果找到任何值,则 checkbox=checked

c - 与 Node 和 Node-gyp 一起使用的 AWS Lambda 上出现奇怪的 "memory"行为

javascript - 如何阅读 Firebase Node.js 模块?

sqlite - 本地 SQLite 与远程 MongoDB

javascript - 对象数组属性提取循环速记

c - 在 C 中使用指针而不是二维数组字符串

node.js - 大文件的事件循环?

JSON 对象映射到 mongoose schema _id

mongodb - 映射器无法让Pig将数据插入MongoDB