Im Versuch, spezifische Quiz in der Datenbank von id zu erhalten:
static getQuiz(db, id, cb){ //db is database connection, id is quiz id, cb is just callback
db.find({ _id : "8RA4Rey50eqKFlWK"}, {"quiz" : { $elemMatch : { _id : id}}}, function(err, Doc){
if(cb){
cb(err,Doc);
console.log(Doc); //only return _id : "8RA4Rey50eqKFlWK"
}
})
}
JSON Datenbank:
{
"_id":"8RA4Rey50eqKFlWK",
"quiz":[
{
"_id":"1b944055-2b15-4838-7e7a-beef4c9a5a62",
"title":"test",
"description":""
},
{
"_id":"7dc53529-206c-6003-1d3c-133264d7ad81",
"title":"aaaa",
"description":""
},
{
"_id":"db3c788f-56b3-f9c8-8a25-affb2981e12f",
"title":"lala",
"description":""
},
{
"_id":"20388c1f-1a00-4f7b-3d25-9db56247a6bf",
"title":"asdasd",
"description":""
}
]
}
obigen Code nicht funktioniert, bereits getestet mit:
db.find({ _id : "8RA4Rey50eqKFlWK"}, {"quiz" : { $elemMatch : { title : "test"}}})
aber Ergebnis nur noch root id => _id: "8RA4Rey50eqKFlWK".
i erwartet zur Folge haben, wenn Such Quiz von id "1b944055-2b15-4838-7e7a-beef4c9a5a62" sein sollte:
{
"_id":"8RA4Rey50eqKFlWK",
"quiz":[
{
"_id":"1b944055-2b15-4838-7e7a-beef4c9a5a62",
"title":"test",
"description":""
},
]
}
Irgendwelche Lösungen? Im tatsächlich mit NeDB https://github.com/louischatriot/nedb die gleiche Syntax wie MongoDB ist. danke
EDIT: ich versuchte meinen Code mit mongodb Konsole, funktioniert es schön! vielleicht ist das nur NeDB Bug?
Ich habe Ihren Code jetzt in Mongo2.6.9 versucht und gibt das erwartete Ergebnis zurück. –
Ja, das sieht wie eine Funktionalität aus, die nicht in nedb bereitgestellt wird. Hast du eine Positionsvariante ausprobiert? 'db.find ({_id:" 8RA4Rey50eqKFlWK "," Quiz ": {$ elemMatch: {title:" test "}}}, {" quiz. $ ": 1})' oder 'db.find ({_id: "8RA4Rey50eqKFlWK", "quiz.title": "test"}, {"quiz. $": 1}) ' – Veeram
Es sieht so aus, als wollten Sie nur ein bestimmtes Element des" Quiz "-Arrays zurückgeben. $ elemMatch wird verwendet, um basierend auf Elementen des Arrays zu passen, gibt aber immer noch das gesamte Dokument zurück. Siehe unten meine Antwort zur Verwendung des Aggregationsframeworks zur Neustrukturierung des Dokuments. –