javascript - 无法使用日期(nodejs)使用猫鼬查询数据
问题描述
我正在尝试查询在 startDate 和 endDate 之间具有“inputDate”的所有协助文档。我已经在互联网上寻找了很长时间,但我无法让它工作。应该检索现在在我的数据库中的唯一文档。我正在使用 NodeJS+Mongoose。
控制器中的代码如下:
exports.getOccupation = (req, res, next) => {
var inputDate = new Date("1999","10","13","16","0","0");
Assistance.find({
dateInterval:{
startDate: {$lte:inputDate},
endDate: {$gte:inputDate}
}
})
.then(assistances => {
console.log(assistances.length);
})
}
模型代码:
const assistanceSchema = new Schema(
{
user_id:{
type: Schema.ObjectId
},
place:{
longitude:{
type:String
},
latitude:{
type:String
}
},
dateInterval:{
startDate: Date,
endDate: Date
}
},
{timestamps:true}
);
解决方案
我不确定,但我相信 find() 方法接受dateInterval.startDate而不是dateInterval:{startDate: ... }。
尝试这样改变:
Assistance.find({
$and: [
{ "dateInterval.startDate": { $lte: inputDate } },
{ "dateInterval.endDate": { $lte: inputDate } },
],
}).then((assistances) => {
console.log(assistances.length);
});
推荐阅读
- node.js - 错误:.hasMany 调用的东西不是 Sequelize.Model 的子类
- excel - 将范围从一个工作簿复制到另一个工作簿(替代复制粘贴)
- .net - 如何通过授权在 IIS 重写中添加 cors 设置?
- python-venv - fish:检查是否在 venv 中运行
- html - 无法将图像另存为图像
- kernel-module - 将参数从用户空间应用程序传递到内核模块
- shell - 如何逐行读取文件但删除输入
- javascript - 如何修复此节点以响应连接以使我的登录页面正常工作?
- apache-spark-sql - 键和值上的 Spark Dataframe MapType 过滤器
- node.js - Node.js 中用于复制 Blob 的 Azure REST API PUT 标头