Я пытаюсь получить необходимые данные, используя $ match, но каждый раз он возвращает ноль. С другой стороны, find возвращает необходимые данные. Я должен реализовать $ lookup и $ merge для результата, который я получаю, но результат $ match равен нулю.
Я пытался использовать базовый запрос в $ match, но он все еще возвращает ноль. Я пробовал и другие посты, но в каждом посте приведенные шаги не для меня.
Это мой код:
var posts;
var area = "addresses."
var range = area.concat(req.body.range);
var place = req.body.place;
var reg = new RegExp(place, "i");
var query = {};
query[range] = reg;
/*Posts.find(query)*/ // this returns the result
Posts.aggregate( // inside this I get posts not found and
// the console.log prints empty value
[
{$match: {query}}
],
function(err, posts) {
if (err) {
return res.send(err).end;
} else if(posts.length > 0){
console.log("posts = "+posts);
reply[Constant.REPLY.MESSAGE] = "post by user found";
reply[Constant.REPLY.DATA] = posts;
reply[Constant.REPLY.RESULT_CODE] = 200;
reply[Constant.REPLY.TOKEN] = "";
return res.send(reply).end;
}else {
console.log("posts = "+posts); //empty value
reply[Constant.REPLY.MESSAGE] = "posts not found";
reply[Constant.REPLY.DATA] = null;
reply[Constant.REPLY.RESULT_CODE] = 200;
reply[Constant.REPLY.TOKEN] = "";
return res.send(reply).end;
}
}
);
The result of both find and $match must be same.