mongoose 모델에서 중첩된 데이터를 쿼리하는 방법
MEVN 스택 백엔드와 Vuex를 사용하여 Vue.js 앱을 구축하려고 합니다.Mongoose에 네스트된 데이터를 쿼리하기 위해 대응하는 Express GET 루트를 요구하는 GET 요구를 사용하여 Vuex 액션핸들러를 설정합니다.
사용자 이름은 인수로 핸들러에 전달되어 GET 요청 URL에 파라미터로 추가됩니다.
actions: {
loadPosts: async (context, username) => {
console.log(username)
let uri = `http://localhost:4000/posts/currentuser?username=${username}`;
const response = await axios.get(uri)
context.commit('setPosts', response.data)
}
}
대응하는 Express 루트 쿼리activeUser.name
Mongoose 모델의 중첩된 데이터를 나타냅니다.
postRoutes.route('/currentuser').get(function (req, res) {
let params = {},
username = req.query.activeUser.name
if (username) {
params.username = username
}
Post.find(params, function(err, posts){
if(err){
res.json(err);
}
else {
res.json(posts);
}
});
});
아래는 Mongoose 모델입니다.activeUser.name
Express 루트에 의해 쿼리된 네스트데이터를 나타냅니다.
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let Post = new Schema({
title: {
type: String
},
body: {
type: String,
},
activeUser: {
name: {
type: String
}
}
},{
collection: 'posts'
});
module.exports = mongoose.model('Post', Post);
이 설정에서도 GET 루트는 액션핸들러에 응답을 반환하지 않는 것처럼 보입니다.더하는 줄 알았어username = req.query.activeUser.name
Mongoose에서 네스트된 데이터를 쿼리하는 데 적절한 방법이지만, 분명히 그렇지 않습니다.Mongoose 모델에서 네스트된 데이터를 쿼리하기 위해 위의 Express 루트를 설정하는 방법에 대한 권장 사항이 있습니까?감사합니다!
name
안에 있다activeuser
따라서 다음과 같이 params 객체 변수를 구성해야 합니다.
postRoutes.route("/currentuser").get(function(req, res) {
let params = {
activeUser: {}
};
let username = req.query.activeUserName;
if (username) {
params.activeUser.name = username;
}
Post.find(params, function(err, posts) {
if (err) {
res.json(err);
} else {
res.json(posts);
}
});
});
activeUserName도 다음과 같은 쿼리 파라미터로 사용하였습니다./currentuser?activeUserName=JS_is_awesome18
언급URL : https://stackoverflow.com/questions/60108257/how-to-query-nested-data-in-mongoose-model
'programing' 카테고리의 다른 글
L1 캐시의 Haswell에서 최대 대역폭 확보: 62%밖에 확보하지 못함 (0) | 2022.07.16 |
---|---|
v-model이 구성 요소의 로컬 데이터 대신 Vuex 상태를 변환하는 이유는 무엇입니까? (0) | 2022.07.16 |
C의 객체 파일이 뭐죠? (0) | 2022.07.16 |
물음표와 콜론(?: 3진 연산자)은 objective-c에서 무엇을 의미합니까? (0) | 2022.07.16 |
JEST 유닛 테스트스크립트가 TypeError: this로 실패합니다._environment.runScript는 함수가 아닙니다. (0) | 2022.07.16 |