javascript - Mongoose 从 html datepicker 中查找 2 个日期之间的结果

标签 javascript node.js html datetime mongoose

我有以下子文档:

{
 id: 1,
 date:2019-04-01 00:21:19.000
 },
{
 id: 2, 
 date:2019-03-31 00:21:19.000
} ...
Document schema is :
const barEventSchema = new Schema({
id: {
    type: Number,
    unique: true,
    required: true
},
raw: { type: String },
date: { type: Date },
type: { type: String },

})

const FooSchema = new Schema({
   bar: [barEventSchema]
})

我想根据从 html 输入中选取的日期范围进行查询,该日期范围的值类似于 2019-04-012019-03-31。 所以在服务器端,我想做一些类似的事情:

//@star_date = 2019-04-01, @end_date = 2019-04-01
Foo.findOne('bar.date' : {$lte : start_date, $gte: end_date})

但是,这会返回所有文档。

最佳答案

所有具有任何子文档且日期在开始日期和结束日期范围之间的文档都可以使用以下方式检索:

const conditions = {
  'bar': {
    $elemMatch: {
      'date': {
        $gte: new Date(start_date), 
        $lte: new Date(end_date)
      }
    }
  }
}

Foo.find(conditions)

这将返回所有文档,其中至少有一个子文档的日期在条件中指定的范围内。 $elemMatch operator用于在 bar 子文档的 date 字段上实现此条件。

关于javascript - Mongoose 从 html datepicker 中查找 2 个日期之间的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55482626/

相关文章:

php - php 变量中的斜杠在 javascript 中未正确解析

php - 文件上传时更改临时文件路径

javascript - 如何跟踪 jQuery 对话框调用的操作?

javascript - 在 React 中嵌套三个组件

node.js - nodejs框架最好的框架是什么以及区别

javascript - 在 node.js 中安装 Socket.io 包

javascript - 单击“添加”按钮时重复行

javascript - jsPerf.com Chrome 的 node.js 基准测试结果是否可靠?

javascript - 在html5 Canvas 上逐帧绘制视频并用 slider 控制

html - 使用 CSS 使提交按钮成为图像