월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
섹션4 진행중, mongoose 질문
MONGO_URI, 이후 부분들은 작성안해도 에러가 안나는데,굳이해야하나요? 버젼이 업데이트 되면서 작성 안해도 되도록 바뀐걸까요? 또,이 부분에서, 여기를 작업해주지 않아도 name 이나 age 둘중 하나만 put 해도, null 값이 들어가지 않는데요.이 역시 버젼이 올라가서 개선이 된걸까요?만약 그렇다면, 개정된 강의를 만드실 계획이 있으신지도 궁금합니다지금 사용하고 있는 몽구스 는 7.0.1 입니다.
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
섹션1 - ObjectID
여기 이부분은 ObjectID를 ID 가 아닌 Id 로 해주면 되는 부분이 아닌가요?ObjectId 로 하면 잘 나오는데요. 굳이 ObjectID 로 선언을 해줘야하는가 싶어서 질문드립니다.
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
질문있습니다!
안녕하세요 수업 질문입니다.저만 그런건지 age index를 생성하기 전인데도 불구하고,age로 sort 할 경우 성능이 오히려 3배 가량 향상됩니다.. ㅜㅜsort를 작성할 경우 수업과 동일하게 sort_key_generator는 나타나지 않고, documents returned도 0 으로 표기 됩니다.하지만 explain 탭이 아닌 documents탭에서는 정렬방식이 적용 되어 문제없이 조회되는 걸로 보아 문법을 작성을 잘못 한것 같지않고, sort를 작성하면 explain이 제대로 나타나지 않아 헤매이고있습니다.index의 장점을 직접 체험하기 위해 데이터는 약 100만개 정도 생성한 상태로 따라해보는데, 의도와는 다른 현상이 나타나 질문드립니다!!
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
mongoose v6 공지하신거 적용 했습니다. blog 저장할때, blog.user 필드에 user 도큐먼트 전체를 복사해서 저장하는데 맞나요?
blog.user 필드에 user 도큐먼트 전체를 복사해서 저장되도록 되었습니다.blog.user 필드에는 ObjectId 가 저장되어야 하는건지, 아니면 user 도큐먼트 값을 그대로 복사한 값이 저장되어야 하는건지 궁금합니다
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
트랜잭션 에러
let session; try { session = await mongoose.startSession(); await session.withTransaction(async () => { const user = await User.findById( "63b95c6db51919091698cfc6", {}, { session } ); console.log(user); }); } catch (error) { console.log(error); } finally { await session.endSession; } 알려주신 코드를 기반으로 해서 위와 같이 코드를 작성했는데 아래와 같은 에러가 발생되었습니다. 해결 방법이 어떤게 있을까요? 에러MongoServerError: Transaction numbers are only allowed on a replica set member or mongos
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
key에 점이 들어갈때 검색이 안나오는데 이유가 있나요?
db.users.insertOne({name:{first:"Elon", last:"Musk"}}) { _id: ObjectId("63a00859907755c4cf9829a3"), name: { first: 'Elon', last: 'Musk' } } db.users.insertOne({"name.first":"Elon", "name.last":"Musk"}) { acknowledged: true, insertedId: ObjectId("63a00bd9907755c4cf9829a7") } db.users.findOne({"name.first":"Elon"}) { _id: ObjectId("63a00859907755c4cf9829a3"), name: { first: 'Elon', last: 'Musk' } }위와 같이 할때 하나만 검색되는지 궁금합니다.name.first 로 만든 key 는 어떻게 검색해야하나요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
글 리스트 클릭시 상세 페이지로 넘어가는 방법에대해 꼭좀알려주세요.
import React, { useEffect } from 'react' import axios from 'axios' import { useParams } from 'react-router-dom' const ShowPage = () => { const {id} = useParams() const getPost = (id) => { axios.get(`users/board/${id}`).then((res)=>{ console.log(res.data); }) } useEffect(()=>{ getPost(id); },[]) return ( <div>ShowPage</div> ) } export default ShowPage userRouter.get('/board/:userId',async(req,res)=>{ try{ const{userId} = req.params.userId const user = await User.findOne({_id:userId}); console.log(user); return res.status(200).json({success:true, user}) }catch(err){ console.log(err); return res.status(500).send({err: err.message}) } })
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
GET /user/:userId 관련 질문있습니다.
현재 todoapp을 작업중에 있고요. client(리액트), server(mongoose) 로 작업중입니다.create/delete/read는 구현이 되었으며, List목록에서 1개를 클릭하면 나오는 상세페이지가 몇일동안 힘들게 하네요. 클라이언트에서 보내는 값은 1,2,3..... 이런 숫자이고요. server로 넘어가면 강사님이 말씀하신것처럼 string 타입으로 넘어옵니다.몽고디비에 생성된건 objectId 타입이라서, 서로 매칭이 안되네요. 잘몰라서 여쭤봅니다. 방법이 없을까요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
islive 질문
선생님 안녕하세요.이번 강의에서 patch를 통해 islive를 수정할 때 저는지난 user route에서 put method를 이용할 때 처럼 findByIdAndUpdate를 사용하지 않고 아래처럼 해봤습니다.const blog = await Blog.findById(blogId); if (islive) blog.islive = islive; await blog.save(); return res.status(200).send({ blog });그런데 이렇게 했더니 false에서 true로는 변경이 가능한데 true에서 false로 바꿀려고 하면 바뀌지가 않습니다.어떤 이유에서 이런 문제가 발생하는건가요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
updateBody에 관한 질문
선생님 안녕하세요.해당 수업을 예전에 들었었다가 이번에 복습 차원에서 다시 듣고 있는 상황인데, 그때와 조금 다른 결과가 나와서 질문을 올립니다.수업에서 하셨던 것 처럼 처음에 updateBody를 쓰지 않고 {age, name}을 두번째 인자로 줬을 때 한쪽만 수정을 하게 되면 값을 기입하지 않은 다른 값은 null로 표기가 되는 것을 보여주셨습니다.예전에 수업을 들을 때 저도 똑같은 결과가 나왔던 것으로 기억하는데요. 다만, 이번에 할 때는 updateBody를 주지 않고 그냥 {age, name}으로만 해도 하나만 수정했을 때 값을 기입하지 않은 다른 것을 null이 되지 않고 기존 값을 유지 합니다.혹시 그 사이 mongoose 혹은 다른 라이브러리의 업데이트가 있어서 그런걸까요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
await에 대한 질문이 있습니다.
선생님 안녕하세요!제가 프로미스에 대한 이해가 부족해서 기초적인 질문일 수도 있을 것 같습니다만 답변 주시면 감사드리겠습니다.이번 예제에서 await를 사용하여 mongoDB가 먼저 연결되게 코드를 짜셨는데, await라는게 말 그대로 프로미스가 다 실행될 때까지 기다렸다가 await 구문을 실행하라는 뜻 아닌가요~?근데 await mongoose.connect를 하면 mongoDB에 먼저 접속할 수 있게 되는 이유가 어떤 것인지 궁금합니다.
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
mongodb connect
await mongoose.connect(MONGO_URI, {useNewUrlParser : true , useUnifiedTopology:true , useCreateIndex:true}); useCreateIndex:true}이부분을 추가시 mongodb 6.0이상 버전에서MongoParseError: option usecreateindex is not supported위와 같은 에러가 발생합니다.
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
index 관련 질문입니다.
안녕하세요. 강의 잘 보구있습니다.index 옵션을 주실때 index:true라고 주시길래index 1 / -1은 오름/내림차순인 것은 알겠는데 true옵션은 뭐지 ?? 싶어서 서치도 해보고 공식 홈페이지도 봤는데 뭔지 모르겠더라구요 ㅠ공식홈페이지에서도 1 -1이렇게 많은게 있었는데 혹시 각각이 무슨 의미인지 알 수 있을까요? index true만이라구요.index:true는 그냥 정렬은 하지 않고 주소에 대해서 더 빨리 가져올수 있도록 만들어 놓기만 하는건가요?만약 맞다면 그냥 find로 하는것과 성능차이가 크게 나까요 ?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
내장할때 다른 모델을 인식하는 것
Blog.js모델을 보면user: {_id: {}username:{}...}을 내장시키는데요, 이때 _id에만 ref:"user"가 있는데그 아래 username, name항목들은 왜 자동으로 추가되는거죠 ? --방금 확인했을때 라우터에서 let blog = new Blog({...req.body, user}); 가 있었네요. 필요한 부분만 공부한다고 같이 코드 타이핑을 안하고 있었는데 ㅠㅠ혹시 챕터별 코드를 볼 수 있는 깃허브가 따로 있을까요 ??
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
질문이 있습니다
User가 작성한 Blog를 삭제하게 되면 Blog 내부에 있는 Array도 같이 삭제되지 않나요? Blog를 deleteMany를 통해서 삭제한 이후에 추가로 updateMany를 통해서 Blog에 있는 comment를 pull해주는 이유가 궁금합니다
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
MongoDB Atlas(Managed Cloud Service)
MongoDB Atlas를 실무에서도 많이 사용을 하나요??커뮤니티 사이트 등 데이터가 많이 사용되는 서비스에서도 많이 사용중인지 궁금하네요!
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
mongoose update 구문 질문
안녕하세요. blog에 comment 내장하는 강의에서 보면 const blog = Blog.findById(id); const comment = new { ..., blog} // 이렇게 댓글에 blog 객체를 준 후 Blog.updateOne({ _id: id}, { ... }) // 이렇게 blog에 댓글 갯수나, 최근 댓글 업데이트 하는 구문이 있는데요 blog에서 _id 는 unique값이니까 blog.update({ ... }) 이렇게 써도 될까요? 테스트해보니까 update는 되는데요 다른 쪽 영향범위일 수도 있는데 간헐적으로 댓글 수 $inc가 안되는 blog들이 생기는거 같기도해서요ㅠㅠ Blog.updateOne 으로 사용하는게 좋을까요?
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
new에 관한 질문이 있습니다.
선생님 안녕하세요. 수업 잘 듣고 있습니다. 기초적인 질문일 수도 있기는한데, 아무리 찾아봐도 도저히 이해가 가지 않는 부분이 있습니다. User.js에서 new mongoose.Schema를 한 부분도 그렇고server.js에서 new User(req.body)한 부분도 그렇고 new라는 것이 여기서 어떤 역할을 하는지를 잘 모르겠습니다. new와 생성자에 대해서 여러 사이트들을 찾아보며 읽어봤는데 제가 이해한 정의와 여기서 사용되는 용도가 매치되지 않습니다. mongoose에서, 그리고 User 앞에 new를 붙인 이유를 설명해 주시면 감사드리겠습니다.
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
문법에 관한 질문이 있습니다.
안녕하세요! 덕분에 잘 배우고 있습니다. 다름이 아니라 문법에 관한 질문이 있는데요.앞 강의에서 json문법을 사용하신다고 하셨던 것 같은데이번 강의에서 보면, db.users.updateOne({name:"Sihoon Kim"},{$set:{age:30}}와 같은 경우에는 key에 따옴표를 붙이지 않았던 반면 객체 안의 객체를 들어갈 경우에는db.users.updateOne({"name.first": "Elon"},{$set:{"name.last": "musk2"}})와 같이 key에 쌍따옴표를 써주셨습니다.json문법은 key에 따옴표를 사용하지 않는 것으로 알고 있는데 혹시 어떤 경우에 따옴표를 사용하고 안하는 것인지 알려주시면 감사드리겠습니다!
- 미해결mongoDB 기초부터 실무까지(feat. Node.js)
부분 nesting을 할 경우.. Update, Delete에 대해 궁금합니다.
부분 nesting을 사용하면 최적화를 할 수 있으나 후기를 update하거나 delete할 때 해당 후기가 blog에 포함되어있는지를 탐색하고, 포함되어있을 경우 해당 값도 바꿔줘야 하는데, 그럼에도 부분 nesting을 하는 것이 효율적인지 궁금합니다.