gpt4 book ai didi

javascript - 使用 mongoose 和 nodejs 转换为日期失败

转载 作者:行者123 更新时间:2023-12-02 22:31:21 24 4
gpt4 key购买 nike

我想我快疯了,我就是无法让它发挥作用......

Schema 的定义如下

const ChildSchema = new Schema({
birthDate: {
type: Date,
required: true
}
});

然后我像这样定义父级

const ParentSchema = new Schema(
{
children: {
type: [ChildSchema]
}
}
);

我想创建一个静态方法来让 child 像这样出生

ParentSchema.statics.findTodayChildren = async function findTodayChildren(
parentId
) {
const today = new Date(2019, 11, 16); // Hard coded for debugging
const query = await this.find({
_id: parentId,
children: {
birthDate: {
$lte: today
}
}
}).select("children");

console.log(query[0].children);
};

我强制查询返回一些内容,但我不断收到这个令人沮丧的错误Cast to date failed for value。有趣的是,我删除了 $lte 过滤器并使用简单的 birthDate: Today 它有效(显然数组是空的,因为将日期与时间戳匹配并不那么容易)。

我还检查了 mongoDb 是否正确存储了数据,它说它是一个日期值

_id: 32vdsks09i209isdljivlk,
birthDate: 2019-10-14T14:24:35.000+00:00

我尝试了每一种 Javascript 方法,但似乎都不起作用

$lte: new Date()
$lte: new Date().toISOString()
$lte: new Date().toGMTString()

请帮忙! 😅

最佳答案

将您的查询更改为:

  const query = await this.find({
_id: parentId,
'children.birthDate': {
$lte: today
}
}).select("children");

了解更多信息here in docs .

关于javascript - 使用 mongoose 和 nodejs 转换为日期失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58890446/

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