我有像下面的数据库条目我想按add_on排序,但它给出错误。我们是否有某种方式按此格式对日期进行排序,或建议使用其他格式的存储日期
{
"_id" : ObjectId("57d1a9dc1170b35414a180d7"),
"c" : "TPCG",
"modified_on" : ISODate("2016-09-08T18:11:40.150Z"),
"euuu" : "5",
"owner" : null,
"added_on" : ISODate("2016-09-08T18:11:40.150Z")
}
错误
> db.testjobs.find({'add_on':{$lte: ISODate("2016-09-08T18:11:40.150Z")}}).sort('added_on',-1).limit(3)
Error: error: {
"$err" : "Can't canonicalize query: BadValue sort must be object or array",
"code" : 17287
}
>db.testjobs.find().sort('added_on',-1)
Error: error: {
"$err" : "Can't canonicalize query: BadValue sort must be object or array",
"code" : 17287
答案 0 :(得分:3)
我认为这是一个你忽略的小问题:)
第一个语句包含一个过滤器" add_on'而不是" added_on'。 两者都包含排序(' added_on',-1')这应该是排序(' added_on': - 1)
db.testjobs.find({'added_on':{$lte: ISODate("2016-09-08T18:11:40.150Z")}}).sort('added_on' : -1).limit(3)})
db.testjobs.find().sort('added_on':-1)
两人都在这里工作。