Ich versuche, ein bestimmtes Element in einem Array in einer Meteor-Sammlung auf der Clientseite abzufragen, aber Minimongo unterstützt den Operator $ nicht. Gibt es eine Alternative zum Filtern meiner Abfrage, sodass nur das spezifische Element im Array zurückgegeben wird?
Meine Sammlung ist wie folgt strukturiert:
{
"userID": "abc123",
"array": [
{
"id": "foo",
"propA": "x",
"propB": "y"
},
{
"id": "bar",
"propA": "a",
"propB": "b"
}
]
}
Ich versuche, eine Abfrage zu schreiben, die nur das Objekt in dem Feld mit der ID „foo“ zurückgibt. In Mongo, würde diese Abfrage sein:
collection.find({
"userID": "abc123",
"array.id": "foo"
}, {
"array.$": 1
});
jedoch Minimongo nicht den $ Operator in Projektionen unterstützt so dies auf einen Fehler wirft. Ich habe ähnlich strukturierte Abfragen mit $ elemMatch ausprobiert und versucht, die solution described here, aber es erreicht nicht, was ich versuche zu tun.
Gibt es eine alternative Möglichkeit, mit Minimongo nach dem einen Element in diesem Array zu suchen?
Ich tatsächlich find(). Fetch() und es tat genau das, was ich suchte. Wenn Sie die Antwort bearbeiten, markiere ich sie korrekt. –
@JoshVickerson Sehen Sie sich die vorgeschlagenen Änderungen an. Ich bin immer noch unklar, ob Sie nach einem Element in einem oder mehreren Dokumenten suchen. –
Ich suche nach einem Element in einem einzigen Dokument. In meinem Anwendungsfall ist die userId eindeutig, daher sollte der Fund immer nur einem Dokument entsprechen. Ich brauche dann ein einzelnes Element aus dem Array in diesem Dokument. –