Lassen Sie uns sagen, dass ich das folgende Dokument-Schema in einer Sammlung ‚Nutzer‘ genannt haben:MongoDB: Abfrage und Abruf von Objekten innerhalb eines eingebetteten Arrays?
{
name: 'John',
items: [ {}, {}, {}, ... ]
}
Die ‚Elemente‘ Array enthält Objekte in folgendem Format:
{
item_id: "1234",
name: "some item"
}
Jeder Benutzer mehrere Elemente haben können eingebettet in das Array 'Elemente'.
Jetzt möchte ich in der Lage sein, ein Element durch eine item_id für einen bestimmten Benutzer abzurufen.
Zum Beispiel möchte ich den Artikel mit der ID "1234", die dem Benutzer mit dem Namen "John" gehören.
Kann ich dies mit mongoDB tun? Ich möchte seine leistungsfähige Array-Indizierung verwenden, aber ich bin mir nicht sicher, ob Sie Abfragen für eingebettete Arrays ausführen und Objekte aus dem Array anstelle des Dokuments zurückgeben können, das sie enthält.
Ich weiß, dass ich mit {users.items.item_id: "1234"} Benutzer abrufen kann, die ein bestimmtes Element haben. Aber ich möchte das tatsächliche Element aus dem Array abrufen, nicht den Benutzer.
Alternativ gibt es vielleicht eine bessere Möglichkeit, diese Daten zu organisieren, so dass ich leicht bekommen kann, was ich will? Ich bin noch ziemlich neu für Mongodb.
Vielen Dank für Ihre Hilfe oder Ihren Rat.
möglich Duplikat [MongoDB nur das ausgewählte Element in Array extrahieren] (http: // stackoverflow.com/questions/3985214/mongodb-extract-only-the-selected-item-in-array) – Foreever
Hallo, @Nebs, können Sie die akzeptierte Antwort überprüfen und ändern? Weil es eine Lösung für dieses Problem gibt, ohne dass zwei separate Sammlungen in neueren Mongodb-Versionen benötigt werden. –