find возвращает необходимые данные, но $ match в mongodb отсутствует - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь получить необходимые данные, используя $ 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.
...