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

home2 게시판 Node.js, Express 게시판 mongoDB 배열에 데이터 넣는 방법에 대한 질문입니다.

mongoDB 배열에 데이터 넣는 방법에 대한 질문입니다.

10 글 보임 - 1 에서 10 까지 (총 11 중에서)
  • 글쓴이
  • #12741

    김창규
    참가자

    안녕하세요 제가 mongodb에 배열 데이터를 만든 후 그곳에 배열 수정 연산자를 이용해 데이터를 넣으려 하는데 뭘 잘못 한건지 데이터가 push되지 않습니다. 코드는 아래와 같이 짰고 에러는 생기지 않습니다.

    router.post('/upload',upload.single('video') ,function(req,res){
      if( req.cookies.key ){
        jwt.verify( req.cookies.key,process.env.SECRET_KEY ,function(err,decoded){
          if( err ) return err;
          userSchema.updateOne({ email: decoded.user_id },{ $push: { videoUrl : req.file.location },function(err,result){
            if( err ) return;
            console.log(result);
          }});
        });
      }else{
        return res.status(400).json({ message: '로그인 해주십시오' });
      }
    })

    #12748

    codingapple
    키 마스터

    일단 요청시 req.file.location 이거가 잘 출력되는지 확인해보도록 합시다 

    #12757

    김창규
    참가자

    네 제대로 출력 되고 있습니다.

    #12765

    codingapple
    키 마스터

    db에 저장된 데이터는 어떻게 생겼습니까

    #12786

    김창규
    참가자

    아래와 같이 생겼습니다 저기 생성되어있는 videoUrl 배열에 데이터를 넣고 싶은데 들어가지 않습니다.

    #12793

    codingapple
    키 마스터

    { email: decoded.user_id } 이거와 일치하는 문서를 업데이트하라고 명령중인데

    이 문서를 못찾은게 아닐까요 decoded.user_id가 원하는 값이 나오는지 출력해봅시다 

    #12794

    김창규
    참가자

    updateOne으로 말고 findOne으로 사용하여 찾기만 할때는 정상 작동 합니다 ㅠ

    #12796

    김창규
    참가자

    updateOne으로 찾으면 result 값이 아래와 같이 뜨기는 합니다;;

    {
    n: 1,
    nModified: 0,
    opTime: {
    ts: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1628230287 },
    t: 60
    },
    electionId: 7fffffff000000000000003c,
    ok: 1,
    '$clusterTime': {
    clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1628230287 },
    signature: { hash: [Binary], keyId: [Long] }
    },
    operationTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1628230287 }
    }

    #12807

    codingapple
    키 마스터

    { $push: { videoUrl : req.file.location } 여기 뒤에 } 이거 하나가 빠진듯요? 

    #12809

    김창규
    참가자

    그래도 해결이 안 돼네요 혹시 스키마 작성한게 틀린건가 해서 스키마 작성 한 것도 남겨봅니다 ㅠ

    const user = new mongoose.Schema({
      email: {
        type: String,
        require: true,
        unique: true,
        trim: true,
      },
      pw: {
        type: String,
        require: true,
        trim: true
      },
      name: {
        type: String,
        require: true,
        trim: true
      },
      salt: {
        type: String,
        trim: true,
      },
      videoUrl: [String]
      
    });

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

About

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

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

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