首页 文章

Mongoose - 查询Schema.Type.Mixed的嵌套属性作为指定的数据类型(Date)

提问于
浏览
1

我在Mongoose中有一个架构设置

var MySchema = new Schema({
data: {
type: Schema.Types.Mixed
}
});

我的问题是,在这个'数据'对象上我将日期值存储为嵌套属性,它一切正常,直到我尝试使用Mongoose进行find()查询并使用嵌套字段进行搜索 . 因为Mongoose不知道它是一个日期,它不能使用通常的'$ gte','$ lte'和类似的运算符我猜测,因为它将数据看作只是一个字符串 .

我的一个对象看起来与此类似

{
title:"My object",
data:{
 publishDate: "2016-07-12T05:00:48.985Z"
}

无论如何,我可以明确告诉Mongoose期望 Value 是一个约会,所以我可以使用'$ gte'作为运营商?

Model.find({
"data.publishDate":{
 $gte:new Date()
}
})

1 回答

  • 0

    结果我必须在保存到数据库之前严格键入值作为日期 . 否则日期运算符'$ gte','$ lte'等将无效 .

    解决方案是这样做

    {
    title:"My object",
    data:{
     publishDate: new Date("2016-07-12T05:00:48.985Z")
    }
    

    此时我不相信您可以在运行查询时动态键入数据 .

相关问题