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

Node.js Mongoose-查询Schema.Type.Mixed的嵌套属性作为指定的数据类型(日期),node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我在Mongoose中使用 var MySchema = new Schema({ data: { type: Schema.Types.Mixed } }); 我的问题是,在这个“数据”对象上,我将日期值存储为嵌套属性,在我尝试使用Mongoose执行find()查询并使用嵌套字段进行搜索之前,一切都正常。因为Mongoose不知道这是一个日期,所以它不能使用通常的“$gte”、“$lte”和类似的运营商,因为它认为数据只是一个字符串 我的一个对象与此类似 { title:"My objec

我在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期望值为日期,这样我就可以使用“$gte”作为运算符

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

事实证明,在保存到数据库之前,我必须严格地将值键入日期。否则,日期操作符“$gte”、“$lte”等将无法工作

解决办法就是这样做

{
title:"My object",
data:{
 publishDate: new Date("2016-07-12T05:00:48.985Z")
}
在这一点上,我不相信在运行查询时可以动态地键入数据