我一直试图让这个查询正常工作,而且非常沮丧。
我试图搜索电子邮件或用户名,电子邮件与通过的电子邮件不匹配。我正在通过searchstr
并通过电子邮件发送给该函数。
我到第1步然后它给了我未定义的错误。当我评论除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
});
});
});
答案 0 :(得分:0)
我没有让查询以我想要的方式工作,但我确实得到了一个解决方法,如果有人能提供更好的答案,那么我会选择它作为答案。
我犯的主要错误是在forEach中,因为我猜不会有错误的变量。
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});
});