我认为我要疯了,我只是无法使它正常工作...
Schema的定义如下
const ChildSchema = new Schema({
birthDate: {
type: Date,required: true
}
});
然后我将父级定义如下
const ParentSchema = new Schema(
{
children: {
type: [ChildSchema]
}
}
);
我想创建一个静态方法来让今天的孩子这样出生
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是否正确存储了数据,并说这是一个Date值
_id: 32vdsks09i209isdljivlk,birthDate: 2019-10-14T14:24:35.000+00:00
我已经尝试了每种Javascript方法,但似乎没有任何作用
$lte: new Date()
$lte: new Date().toISOString()
$lte: new Date().toGMTString()
请帮助! ?