Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 选择mongodb值的两个日期字段之间的所有对象_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 选择mongodb值的两个日期字段之间的所有对象

Node.js 选择mongodb值的两个日期字段之间的所有对象,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我从mongodb获取数据有点困难。我有这样的收藏: Activities = [ ... some another activity object item ... , { type: "special" dates: { begin: ISODate("2019-07-07T17:00:00.000Z"), end:

我从mongodb获取数据有点困难。我有这样的收藏:

    Activities = [
          ... some another activity object item ... ,

          {
              type: "special"
              dates: {
                  begin: ISODate("2019-07-07T17:00:00.000Z"),
                  end: ISODate("2019-07-20T17:00:00.000Z"),
                  note: ""
              },
              status: "pending"
          } ,
          ,
          {
              type: "event"
              dates: {
                times: {
                    from: "12:00",
                    to: "15:00"
                  },
                  begin: ISODate("2019-07-21T17:00:00.000Z"),
                  end: ISODate("2019-08-29T17:00:00.000Z"),
                  note: ""
              },
              status: "pending"
          } ,

          ... some another activity object item ...
      ]
我想获取所有活动数据,包括:dates.begin
_Activities.find({
        "dates.end" : {
            $lte : "2019-08-31T17:00:00.000Z"
        },
        "dates.begin" : {
            $gte : "2019-07-15T17:00:00.000Z"
        }
    }, callback);
// return [];


_Activities.find({
        "dates.end" : {
            $lte : "2019-08-30T17:00:00.000Z"
        }
    }, callback);
// return [] too;

我不知道我错在哪里,任何人都有办法帮我:((谢谢你花时间。

因为你的字段有
日期
,所以你需要传递一个
日期
来进行比较。类似的方法可能有用:

$lte : new Date("2019-08-31T17:00:00.000Z")

您可以将日期作为javascript日期对象传递,它将起作用

dates: {
  end: { $lte: new Date('2019-08-31T17:00:00.000Z') } ,
  begin: { $gte: new Date('2019-07-15T17:00:00.000Z') }
}

我已经厌倦了这两天的麻烦,这是现在的工作,谢谢你这么多家伙。祝你愉快,我能知道你正在使用哪个版本的猫鼬吗?是的,当然,我使用了猫鼬v5.6.6,我们需要注意什么在这个版本的朋友我只是觉得奇怪,因为我在我的项目中做了一些关于日期的查询,但它仍然有效。Maybe您的项目有一些不同。亲爱的朋友,感谢您的解决方案,我尝试了这种方法,但仍然返回空数组,也许mongoosejs不支持这种情况,但我们可以使用类似“dates.begin”:{$gte:new Date('2019-07-15T17:00:00.000Z')和“dates.end':{$gte:new Date('2019-07-15T17:00:00.000Z'))很抱歉,这就是为什么它不适合你的原因