I Element innerhalb verschachtelter arrray in mongoDB löschen bin zu kämpfen.Suchen und löschen Dokument innerhalb verschachtelte Array
Lets sagen, ich habe dieses Schema:
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]
}]
});
Zum Beispiel habe ich Instanz dieses Schema wie folgt aus:
{
category: "Math",
tests: [
{
_id : ObjectId("580859310a0d4b40ac1c6034"),
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
}
]
},
{
_id : ObjectId("580859310a0d4r40ax1c5034"),
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
}
]
}
]
}
Zum Beispiel, wie kann ich Problem löschen: "blablabla" in der Kategorie Mathematik und Version 1A mit mongooseJS?
ich bereits Problem in Mathe Kategorie und Version 1A mit diesem Code zu löschen:
TestCategory
.findOne(
{
category: req.params.testCategory,
'tests.version': req.params.testVersion
},
{
'tests.version.$': 1
}
)
.then(function(testVersion) {
res.send(testVersion);
})
.catch(function(err) {
console.log(err);
next(err);
});
Zum Beispiel habe ich Mathe Kategorie und Version 1A zu suchen, ist das Ergebnis von diesem Code wie folgt:
_id: "580859190a0d4b40ac1c6033",
tests: [
{
_id : ObjectId("580859310a0d4b40ac1c6034"),
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
}
]
}
]
Das Ergebnis bereits gefiltert, so dass nur Version 1A angezeigt wird (obwohl categoryId noch angezeigt wird). Jetzt bin ich verwirrt, wie man die Frage in der richtigen und guten Weise löscht.
Haben Sie etwas noch versucht, dies zu erreichen? – Shrabanee
Ich habe bereits versucht, etwas, lassen Sie mich die Frage – Kim
@Shrabanee aktualisiert – Kim