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})