mongodb多条件查询:
db.messages.find({"userid":"56d6963f924f708819fc8293"},{"sendtime":{"$lt":Date.now()}})
出现了问题如下:
error: {
"$err" : "Can't canonicalize query: BadValue Unsupported projection option: sendtime: { $lt: 1463917205480.0 }",
"code" : 17287
}
到底是出了啥问题啊
第一个条件才是查询参数,不要分成两个参数来传递。
那我写成这样 db.messages.find({"userid":"56d6963f924f708819fc8293","sendtime":{"$lt":Date.now()}}) 两个参数全部放在一个对象里面,好像也不可以啊,还是我写的查询方法有问题
@那年的冬天: 你这个多条件,是and还是or?放在一个对象,报什么错误呢?
@幻天芒: 我把原句贴给你看
db.messages.find({"userid": {"$or": [ubelongid, uid]}}, {'sendtime': {"$gt": currentTime}}, function (err, messageResults) {
});
})
其中的逻辑是这样“userid”实现的是or或逻辑,在前面查询结束的基础上 与 上“sendtime”这个字段,如果是关系型数据库很简单就实现了就是先或再与。
可以了
@那年的冬天: ok~