首页 新闻 会员 周边 捐助

mongodb多条件查询的问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-05-22 23:55

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
}

 

到底是出了啥问题啊

那年的冬天的主页 那年的冬天 | 初学一级 | 园豆:15
提问于:2016-05-22 20:00
< >
分享
最佳答案
0

第一个条件才是查询参数,不要分成两个参数来传递。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2016-05-22 23:30

那我写成这样 db.messages.find({"userid":"56d6963f924f708819fc8293","sendtime":{"$lt":Date.now()}}) 两个参数全部放在一个对象里面,好像也不可以啊,还是我写的查询方法有问题

那年的冬天 | 园豆:15 (初学一级) | 2016-05-22 23:32

@那年的冬天: 你这个多条件,是and还是or?放在一个对象,报什么错误呢?

幻天芒 | 园豆:37207 (高人七级) | 2016-05-22 23:35

@幻天芒: 我把原句贴给你看

db.messages.find({"userid": {"$or": [ubelongid, uid]}}, {'sendtime': {"$gt": currentTime}}, function (err, messageResults) {
});
})

其中的逻辑是这样“userid”实现的是or或逻辑,在前面查询结束的基础上 与 上“sendtime”这个字段,如果是关系型数据库很简单就实现了就是先或再与。

那年的冬天 | 园豆:15 (初学一级) | 2016-05-22 23:38

可以了

那年的冬天 | 园豆:15 (初学一级) | 2016-05-22 23:47

@那年的冬天: ok~

幻天芒 | 园豆:37207 (高人七级) | 2016-05-22 23:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册