안녕하세요. 위는 조공입니다.
moongoose에서 Room 이라는 곳에 데이터가 이렇게 있다고 칠 때 쿼리를 어떻게 하면 되는지 알고 싶어요.
{
Room_ID : r1,
User_ID_List : [u1, u2, u3]
}
{
Room_ID : r2,
User_ID_List : [u2, u3]
}
{
Room_ID : r3,
User_ID_List : [u1, u3]
}
User_ID_List에 u1이 존재하는 Room_ID를 전부 얻고 싶습니다.
(위의 케이스에서는 r1, r2)
이걸 어떻게 쿼리를 날리면 되는지를 모르겠어요.
Room.find({}) 한 다음에 User_ID_List에서 u1이 존재하는지 검색해서 처리하는 방법은
차선책으로 생각하고 있고
쿼리로만 할 수 있는지가 궁금합니다.
find 안에 조건걸면 되지 않음? 일단 해본건 아닌데 구글링으로 찾아보니 find에 조건걸어서 sql과 비슷하게 사용하더라.
$elemMatch 써봤냐?
db.collection.find({"User_ID_List":{"$elemMatch":{"$in":["u1"]}}}) 이런식으로 했던거같은데 Array Query Operator 확인해바바
감사합니다. 잘 되네요