想要用猫鼬从对象数组中获取日期范围明智的数据。
这是我的代码:
sessionSlot.aggregate([
{
"$match": {
'userID': loginUser._id,
'sessions': { "date": { "$gte": req.body.from, "$lt": req.body.to } }
},
},
{$unwind: "$sessions" },
{
"$project": {
"sessions": {
"$filter": {
"input": "$sessions",
"as": "s1",
"cond": {
"$and": [
{ "$gte": [ "$$s1.date", new Date(req.body.from) ]},
{ "$lt": [ "$$s1.date", new Date(req.body.to) ]}
]
}
}
}
}
}
], (err, result) => {
console.log('..........', result);
})
这是我的模式:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bcrypt = require('bcrypt-nodejs');
var sessionSlotSchema = mongoose.Schema({
userID : { type: String },
mail : { type: String },
slotFlag : { type: Boolean },
slotID : { type: String },
slotType : { type: String },
sessions : [{
date : { type: String, default:null },
userID : { type: String, default:null },
therapyType : { type: String, default:null },
price : { type: String, default:null },
startDate : { type: String, default:null },
totalSession : { type: String, default:null },
status : { type: String, default:'empty' },
profilepic : { type: String, default:null },
fullname : { type: String },
autoBook : { type: Boolean, default:false },
time : { type: String, default:null },
duration : { type: String, default:null },
reminders : { type: String, default:null }
}]
})
module.exports = mongoose.model('sessionSlot', sessionSlotSchema, 'sessionSlot');
我遇到类似MongoError的错误:异常:无效的运算符'$ filter'。 那么我在哪里弄错了?
我正在日期格式的请求正文中传递两个日期。 req.body.from和req.body.to是我要从中获取数据的两个字段。