Node.js 选择mongodb值的两个日期字段之间的所有对象
我从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:
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'))很抱歉,这就是为什么它不适合你的原因