猫鼬从html datepicker找到2个日期之间的结果

时间:2019-04-02 19:58:03

标签: javascript node.js html5 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})

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

1 个答案:

答案 0 :(得分:1)

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

open

这将返回至少有一个子文档的日期在from unittest.mock import MagicMock from io import StringIO content = '123' # value for demo # uncomment the line below to read actual file content # content = open('files/package_name.spec').read() open = MagicMock() open.return_value.__enter__.return_value = StringIO(content) with open('files/package_name.spec') as f: print(f.read()) f.seek(0) f.write('abc') f.seek(0) print(f.read()) 中指定范围内的所有文档。 $elemMatch operator用于在bar子文档的const conditions = { 'bar': { $elemMatch: { 'date': { $gte: new Date(start_date), $lte: new Date(end_date) } } } } Foo.find(conditions) 字段上实现此条件。