gpt4 book ai didi

javascript - 查询mongoose数据库中的数据

转载 作者:行者123 更新时间:2023-12-02 23:58:38 26 4
gpt4 key购买 nike

我目前正在尝试查询数据,以便它只返回 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 文件中调用文件的位置:

最佳答案

一些事情:

文档中的字段 _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'}
}

希望有帮助。

关于javascript - 查询mongoose数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55269090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com