• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 배열 자료로 db 검색하는 방법

배열 자료로 db 검색하는 방법

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #20655

    이우비
    참가자

    안녕하세요 선생님 간략하게 

    설명하겠습니다. 

    현재 채팅방을 작업중이구요  

     /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])}  

    저 혼자서는 감이 안잡히네요 .. 

     

    #20657

    이우비
    참가자

    아니면 그냥 처음부터 채팅하기 눌렀을 때 

    member에 오브젝트 아이디가 아니라  회원가입할떄  저장한 아이디를 저장해서 

    꺼내 쓰는게 편할까요 

    #20659

    codingapple
    키 마스터

    db.collection('user').find(

    {"_id" : {"$in" : [ObjectId("619ef5fd2af8f85b901"), ObjectId("619e09c70594023")] } }

    );

    이런 식으로 해봅시다 

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠