【发布时间】:2020-07-31 08:25:42
【问题描述】:
model.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const user = new Schema ({
id:{type:mongoose.Types.ObjectId},
firstName:{type:String, required:true},
lastName:{type:String, required:true},
pic:{type:String},
gender:{type:String},
dob:{type:String},
maritalStatus:{type:String},
nationality:{type:String, enum: ['Indian', 'Others']},
streetAddress: {type:String},
city: {type:String},
state: {type:String},
postalCode: {type:String},
country: {type:String},
phone: {type: String},
email: {type:String},
jobTitle: {type:String},
department: {type:mongoose.Schema.Types.ObjectId, ref:'department'},
dateOfJoining: {type:String},
employeeStatus: {type:String, enum: ['Working', 'Resigined', 'Terminated']},
kra: {type:String},
assignedSupervisor: {type:String},
assignedSubordinate: {type:String},
workExperience : {type:String},
skills: {type:String},
password: {type:String, required:true},
createdOn : {type:Date, default:Date.now} <<<<===== filter will work on this
})
module.exports = mongoose.model("user", user);
query.js
exports.getUser = async(userId, employeeStatus, department, firstName, timePeriod) => {
if (timePeriod) {
if (timePeriod = 'today') {
====>>>>>>> I want here if req.query.timeperiod = today then it show result whose createdOn is today. createdOn is the field in user schema given above
}
}
let queryFilters = { employeeStatus, department, firstName, timePeriod}
queryFilters = JSON.parse(JSON.stringify(queryFilters));
console.log(queryFilters)
return await model.find(queryFilters).populate("department").exec();
}
handler.js
getUser = async (req, res, next) => {
try {
let user = await userController.getUser(req.query.employeeStatus, req.query.department, req.query.firstName, req.query.timePeriod)
req.data = user
next()
}
catch (e) {
req.status = 400;
next(e)
}
}
查询工作正常。我想要如果 req.query.timePeriod = today 那么 query.js 必须返回其 createdOn 具有今天日期的结果。 createdOn 是在 model.js 中看到的字段。我卡在这里了。谁能帮帮我?
【问题讨论】:
标签: node.js mongodb mongoose nodes