Javascript 试图把$gt";进入一个发现。{[CastError:Cast to date在路径“createdAt”处对值“object object]”失败]

Javascript 试图把$gt";进入一个发现。{[CastError:Cast to date在路径“createdAt”处对值“object object]”失败],javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我有一段代码:Reviews.find({createdAt:{“$lt”:app.locals.lastDate}})我想动态地将$lt更改为$gt app.post("/scroll", function(req, res){ console.log("req.body...", req.body); var sortCreate = req.body.older == true ? "createdAt" : "-createdAt" var greaterOrLe

我有一段代码:
Reviews.find({createdAt:{“$lt”:app.locals.lastDate}})
我想动态地将
$lt
更改为
$gt

app.post("/scroll", function(req, res){
    console.log("req.body...", req.body);
    var sortCreate = req.body.older == true ? "createdAt" : "-createdAt"
    var greaterOrLess = req.body.older == true ? "$gt" : "$lt";
    greaterOrLess = greaterOrLess.toString()
    console.log("greaterOrLess;;;", greaterOrLess)
    console.log("inside scroll app.locals.lastDate", app.locals.lastDate)
    Reviews.find({createdAt : {"$lt" : app.locals.lastDate}})
    .limit(10)
    .sort(sortCreate).exec()
问题是当我更改
Reviews.find({createdAt:{“$lt”:app.locals.lastDate}})时

Reviews.find({createdAt:{greaterLess:app.locals.lastDate}})

我得到一个错误:

{ [CastError: Cast to date failed for value "[object Object]" at path "createdAt
"]
  message: 'Cast to date failed for value "[object Object]" at path "createdAt"'
,
  name: 'CastError',
  kind: 'date',
  value: { greaterOrLess: Sun Aug 07 2016 19:25:48 GMT-0700 (Pacific Daylight Ti
me) },
  path: 'createdAt',
  reason: undefined }

这部分:
console.log(“greateorless;;;”,greateorless)
在需要时打印出
$gt
$lt
,为什么我不能使用
更大或更小的
变量?它看起来像一个字符串,所以我不知道变量操作符为什么不工作。

对象中不能有动态键。相反,您可以这样做:

var greaterOrLess = req.body.older == true ? {"$gt" : app.locals.lastDate} : {"$lt" : app.locals.lastDate};
Reviews.find({createdAt : greaterOrLess})