node.js - 如何修复猫鼬“gt”和“lt”不起作用
问题描述
我正在尝试使用猫鼬 ODM 让所有工作人员在给定的日期范围内,但似乎找不到方法。
我尝试使用不同的日期格式,但想出在我的数据库中存储 ISO 日期。现在它以ISODate("2018-12-23T00:00:00Z")
格式保存和检索日期。
但是,我想要的是让所有工作人员使用给定的日期范围$gte
和$lte
/**
* Get all attendance of one member for a specific time frame(a month)
*
*/
module.exports.getAttendanceTimeFrame = function(params,callback){
console.log(new Date(params.frm).toISOString());
AttendanceStaff.find({staff_id: params.staff_id, date:{$gte:params.frm, $lte:params.to}},callback);
}
这什么都没有,但是这给了当天签名的所有工作人员
Model.find({date:'2018-12-22'},callback);
解决方案
那是因为您的参数正在发送日期+时间,而 gte 和 lte 只接受日期。您的日志输出console.log(new Date(params.frm).toISOString());
应显示时间戳
推荐阅读
- wordpress - 在 wordpress API 中渲染元框
- ios - 来自调试器的消息:由于内存问题调试而终止
- python - 基于 keras 的 GPU 机器学习的负载测试
- node.js - FCM 从 NodeJS 服务器发送消息导致错误:请求包含无效参数
- google-cloud-datastore - Google Datastore:按后代键查询过滤器
- scala - 转换关联规则的交易数据集 spark scala
- javascript - 在android webview中加载部分网页
- javascript - npm install 如果 package.json 被修改
- java - 使用 Retrofit 在 Android ( Java) 中发送 POST 请求,.. 工作类似于以下 python 代码
- android - 使用 DrawerLayout 时,Activity 会显示一个带有“android...DrawerLayout”且没有内容的绿屏