포시코딩

Object Array 안에서 매칭되는 값으로 데이터 찾기 find value in array of object 본문

MongoDB

Object Array 안에서 매칭되는 값으로 데이터 찾기 find value in array of object

포시 2022. 7. 19. 19:16
728x90
{
    _id: 1,
    members: [
        {
            _id: 0001,
            id: 'Sam',
            rank: 0
        },
        {
            _id: 0002,
            id: 'Kim',
            rank: 1
        }
    ], 
    name: '테스트그룹'
}

위와 같은 collection 에서 내용이 비슷한 자료가 _id 1에서부터 끝도없이 있다고 쳐보자

members 의 내용물이 다 다를때 어떻게 _id 가 1인 해당 자료를 찾을 수 있을까?

 

$elemMatch 를 쓰면 된다.

app.get('/list', (req, res)=>{
    let _id = ObjectId(req.query._id);
    db.collection('group').find({ members: { $elemMatch: { _id: _id} } }).toArray().then((result)=>{
        res.send(result);
    })
})

원하던 자료를 잘 받아오는거 확인

 

 

자세한 정보는 아래 내가 참고한 사이트를 통해 확인

 

 

 

https://www.mongodb.com/docs/manual/reference/operator/query/elemMatch/

 

$elemMatch (query) — MongoDB Manual

Docs Home → MongoDB Manual$elemMatchThe $elemMatch operator matches documents that contain an array field with at least one element that matches all the specified query criteria.{ : { $elemMatch: { , , ... } } }If you specify only a single condition in t

www.mongodb.com

https://stackoverflow.com/questions/14040562/how-to-search-in-array-of-object-in-mongodb

 

How to search in array of object in mongodb

Suppose the mongodb document(table) 'users' is { _id: 1, name: { first: 'John', last: 'Backus' }, birth: new Date('Dec 03, 1924'), death: new Date('Mar 17, 2007'...

stackoverflow.com

 

728x90