안녕하세요 선생님 간략하게
설명하겠습니다.
현재 채팅방을 작업중이구요
/chat 페이지에 채팅방 리스트 타이틀부분에 상대유저 아이디를 표기하고 싶습니다.
채팅방 리스트에 member = [ 당한사람, 채팅을 신청한 사람 ] 이렇게 오브젝트아이디가 아닌 스트링으로 저장해 두었습니다.
그리고
var users = req.user._id.toString();
var chatTitle = [];
for ( var i = 0; i < result.length; i++){
var chatList = result[i].member ;
chatTitle.push(chatList.find((e,index,a)=> chatList[index] !== users ))
}
서로다른 유저와 의 채팅방이 두개 있다고 가정했을 때
현재 로그인하여 접속한 유저와 , 채팅방 리스트안에 멤버들의 스트링 값 오브젝트 아이디를 비교하여
빈배열에 넣었습니다. 그래서 출력하면
console.log(chatTitle ) // [ '619ef5fd2af8f85b901', '619e09c70594023' ] 이런식으로 나옵니다.
다음으로 이제 chatTitle 에 담긴 상대 유저들 스트링값 으로 된 Object_id 정보를 db. collection( 회원가입 유저) 에서 검색한 뒤에
ejs 파일로 전송해서 보내려고 하는데..
for 문을 돌려서 find 로 하나하나 찾아서 보내야 하나요?.. app.db.collection('member').findOne({_id:ObjectId(chatTitle[i])}
저 혼자서는 감이 안잡히네요 ..