Skip to content

mongoose populate된 document의 값으로 결과 가져오기

아래 array는 author 필드가 populate된 값의 결과이다.

[{
    author: {
    "name": "gil"}
    },
    {
    author: {
    "name": "admin"}
    },
    {
    author: {
    "name": "test"}
    },
]

할때 아래의 코드로 {“name”:”gunforce”} 가져올 수 있다.


User.findOne()
  .populate({ 
    path  : 'friends',
    match : {
        $or: [
                { email: { $regex: term }},
                { name: { $regex: "gil" }},
                { company: { $regex: term }},
                { position: { $regex: term }}, 
                { phoneNumber: { $regex: term }}
            ]
    }
})
.exec(function (err, users) {
  users = users.filter(function(user) {
    if (user.friends.name === 'gil') {
    return user
        } else {
        return null
        }
  });
});

위 코드중 name 값을 보면 name 값에 “gil” 있는 것을 확인할 수 있다.

참고: https://stackoverflow.com/questions/36400361/i-want-to-find-populate-or-search-mongoose

Published inNodeJs