繁体   English   中英

建立条件猫鼬查询

[英]Building conditional mongoose query

我一直在尝试使此查询正常工作,并且感到非常沮丧。

我正在尝试搜索与电子邮件或用户名不匹配的电子邮件。 我正在将searchstr和电子邮件传递给该函数。

我到了第一步,然后它给了我未定义的错误。 当我注释除var query = user.find()之外的所有内容时,它消失了。

我也尝试过user.find({email:searchstr}); 确保它不是查询,但可以。

我究竟做错了什么?

var friendlist = { friendslist: []};

var query = user.find();
query.or([{ email: searchstr }, { username: searchstr }]);
//query.where(email);
//query.ne(email);

query.exec( function (err,users) {
    if(err != null) {console.log(err); callback({'res': false});}
    console.log('step1')
    users.forEach( function (err,userss) {
        if(err != null) {console.log(err); callback({'res': false});}
        console.log('step2')
        friendlist.friendslist.push({
                    "profileURLImage" : userss.profile_pic_server,
                    "currentStatus" : userss.profile_status,
                    "userName" : userss.username,
                    "email" : userss.email,
                    "online_status" : userss.online_status
                });
    });
});

我没有使查询按我希望的方式工作,但我确实得到了解决方法,如果有人能给出比我更好的答案,那我会选择它作为答案。

我犯的主要错误是在forEach中,因为我猜没有err变量。

var friendlist = { friendslist: []};

var query = user.find();
query.or([{ email: searchstr }, { username: searchstr }]);
//query.where(email);
//query.ne(email);

query.exec( function (err,users) {
    if(err != null) { console.log('error'); console.log(err); callback({'res':false});}
    users.forEach( function (userss) {
        if(userss.email != email) {
            friendlist.friendslist.push({
                    "profileURLImage" : userss.profile_pic_server,
                    "currentStatus" : userss.profile_status,
                    "userName" : userss.username,
                    "email" : userss.email,
                    "online_status" : userss.online_status
                });
        }
    });
    callback({'friends': friendlist.friendslist, 'res':true});
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM