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



>我在猫鼬中有一个模式设置

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

我的问题是,在这个"data"对象上,我将日期值存储为嵌套属性,在我尝试使用 Mongoose 进行 find() 查询并使用嵌套字段进行搜索之前,一切都很好。因为猫鼬不知道它是一个日期,所以它不能使用通常的"$gte"、"$lte"和类似的运算符,因为它认为数据只是一个字符串。

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

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

无论如何,我可以明确地告诉猫鼬期望该值是日期,以便我可以使用"$gte"作为运算符?

Model.find({
"data.publishDate":{
 $gte:new Date()
}
})
事实证明,

在保存到数据库之前,我必须严格键入该值作为日期。否则,日期运算符"$gte"、"$lte"等将不起作用。

解决方案是这样做

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

在这一点上,我不相信您可以在运行查询时动态键入数据。

最新更新