Ich habe folgendes json Dokument in meiner Sammlung:MongoDB verschachtelte Abfragestruktur
{
"_id": {
"$oid": "59e3a593734d1d62dcbe79c3"
}
"name": "UserNameKiran"
"notebooks": [
{
"notebookname": "notebook1",
"notes": [
{
"name": "noteName"
},
{
"name": "noteName2"
}
]
},
{
"access": "public",
"notebookname": "notebook2",
"notes": [
{
"name": "noteName"
},
{
"name": "noteName2"
}
]
}
]
};
Ich möchte von einem bestimmten Benutzer und Notebook alle „Notizen“ abzurufen. Beispiel: Alle Notizen für "notebook1".
Ich versuchte den folgenden Befehl, konnte aber kein Ergebnis erhalten.
req.db.collection('usernotecollection').find({
"_id": ObjectId(req.params.userId),
"notebooks": {
"$elemMatch": {
"notebookname": "notebook1"
}
}
}, {notes:1}).toArray(function (err, results) {
console.log(results);
});
Es gibt mir nur die object_id und nichts anderes in den Ergebnissen. Was vermisse ich ?
Danke für die klare Erklärung. Ich bin jedoch nicht in der Lage, die Notizen eines bestimmten Notebooks zu erhalten. Aus irgendeinem Grund passiert die Übereinstimmung für "notebookname": "notebook1" nicht. –
Tehre ist kein Attribut im Unterordner 'notebooks' mit dem Namen 'notebookname'. Vielleicht meinen Sie 'notes.name'. Im Allgemeinen werden Fragen dieser Form (_wie kann ich x aus diesem Dokument bekommen? _) Am besten mit (1) einem Beispieldokument gestellt; (2) ein Beispiel der Abfrage, die Sie versucht haben und (3) ** die gewünschte Ausgabe **. – glytching
Danke Ich konnte mein Problem lösen –