我目前正在尝试查询数据,以便它只返回在2019-09-19和2019-09-22这两个特定日期之间id为bWYqm6-Oo的条目(到目前为止我只有1个条目)。在这种情况下,它应该只返回数据库中的前3个项目。我提出了一个查询,但它只返回一个空数组。有人知道怎么解决这个问题吗?提前谢谢你。
var findBy = {
_id : bWYqm6-Oo,
exercises : [
{
date: {
$gte: 2019-09-19,
$lt: 2019-09-22
}
}
]
}
UserModel.find(findBy).limit(5).exec((err, data) => {
(err) ? res.json({"error" : "problem searching for exercises: " + err}) : res.json(data);
});
我的数据库如下所示:
{
_id: "bWYqm6-Oo",
user: "rommy",
exersises: [
{
user_id: "bWYqm6-Oo",
date: "2019-09-20T00:00:00.000Z",
description: "stiup",
duration: "22",
_id: "pu90D-dHx"
},
{
user_id: "bWYqm6-Oo",
date: "2019-09-21T00:00:00.000Z",
description: "pushup",
duration: "22",
_id: "YtfsJLOXb"
},
{
user_id: "bWYqm6-Oo",
date: "2019-09-20T00:00:00.000Z",
description: "stiup",
duration: "22",
_id: "pu90D-dHx"
},
{
user_id: "bWYqm6-Oo",
date: "2019-09-24T00:00:00.000Z",
description: "stiup",
duration: "22",
_id: "pu90D-dHx"
}
],
__v: 9
}
下面是我在server.js文件中调用文件的位置:
发布于 2019-03-21 04:02:08
以下是一些事情:
文档上的字段_id
在mongo中始终是唯一的,因此在查询中也是如此
var findBy = {
_id : bWYqm6-Oo,
exercises : [
{
date: {
$gte: 2019-09-22,
$lt: 2019-09-22
}
}
]
}
这部分是多余的
exercises : [
{
date: {
$gte: 2019-09-22,
$lt: 2019-09-22
}
}
]
因为将只有一个_id
为'bWYqm6-Oo'
的文档
如果您想使用日期范围进行查询,您可以这样做:
var query = {
'exercises.date': {$gte: '2019-09-22', $lt: '2019-09-22'}
}
希望这能有所帮助。
https://stackoverflow.com/questions/55269090
复制相似问题