从对象数组想使用猫鼬获取日期范围明智的数据

时间:2018-06-19 12:04:53

标签: javascript node.js mongodb express mongoose-schema

想要用猫鼬从对象数组中获取日期范围明智的数据。

这是我的代码:

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是我要从中获取数据的两个字段。

0 个答案:

没有答案