0
mongoDB에서 중첩 된 arrray 내부의 요소를 업데이트하는 데 어려움을 겪고 있습니다. 테스트 버전 일 때 나는 수학 카테고리에 새로운 질문을 추가 할 수있는 방법중첩 된 배열 안에 요소를 업데이트합니다.
{
category: "Math",
tests: [
{
version: "1A",
questions: [
{
problem: "blablabla",
multiplechoices: [
"bla bla", "blb blb", "blc blc"
],
correctAnswer: 1
},
{
problem: "blibliblibli",
multiplechoices: [
"bla bla", "blb blb", "blc blc"
]
correctAnswer: 1
}
]
},
{
version: "1B",
questions: [
{
problem: "auauauauau",
multiplechoices: [
"bla bla", "blb blb", "blc blc"
]
correctAnswer: 1
},
{
problem: "blibliblibli",
multiplechoices: [
"bla bla", "blb blb", "blc blc"
]
correctAnswer: 1
}
]
}
]
}
을 :
예를 들어var question = new Schema({
problem: {
type: String,
required: true
},
multipleChoices: [{
type: String,
required: true
}],
correctAnswer: {
type: Number,
required: true
}
});
var testCategorySchema = new Schema({
category: {
type: String,
required: true
},
tests: [{
version: {
type: String,
required: true
},
questions: [question]
}]
});
이 같은 스키마의 인스턴스가 :
내가이 스키마가 있다고 가정하자 : 1MongooseJS를 사용하는 1A?
감사합니다, 나는 그것을 얻었다. 그러나 어떻게 그것을 몽구스로 얻을 수 있습니까? 나는 이걸하려고'TestCategory .findOne ({category : req.params.TestCategory, tests : {$ elemMatch : {version : req.params.version}}})', 그것은 이미 맞습니까? – Kim
'findOne' 대신'update' 만 사용하고 그에 따라 값을 채 웁니다 ...'$ elemMatch'는'$ elemMatch'가 필요 없습니다. – TomG
괜찮습니까.하지만 업데이트 만 사용하는 경우 어떻게 "테스트 카테고리를 찾을 수 없습니다"와 같이 표시 할 수 있습니까? 미안하지만 여전히 조금 혼란스러워 – Kim