我在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 回答
结果我必须在保存到数据库之前严格键入值作为日期 . 否则日期运算符'$ gte','$ lte'等将无效 .
解决方案是这样做
此时我不相信您可以在运行查询时动态键入数据 .