Ich versuche, MongoDB mit Mongoose abzufragen, um Dokumente basierend auf dem Wert einer verschachtelten Eigenschaft zu finden.Abfrage geschachtelte Eigenschaft in Mongoose (ohne Punktnotation)
Aufgrund der Art, wie die Daten empfangen werden, muss ich die Abfrage ohne Punktnotation durchführen (wie unten zu sehen).
Obj.find({'mainProperty.nestedProp': 'value'})
Der obige Code wird mir die richtigen Ergebnisse erhalten, aber ich muss unten in den Abfragebedingungen im Format zu übergeben.
Obj.find({ mainProperty: { nestedProp1: 'value' } })
ich auf der Client-Seite in dem gesamten Abfrage-Objekt als Argument bin vorbei, anstatt die Abfrage auf dem Server zu entwickeln. Wenn es den Server erreicht, erscheint der obige Code wie unten gezeigt.
Da in mainProperty zwei Eigenschaften verschachtelt sind, ist die obige Suche nicht zulässig. Es wird nach Dokumenten gesucht, bei denen mainProperty genau dem entspricht, was nach dem Doppelpunkt übergeben wird (dh Dokumente, deren Wert gleich nestedProp1 ist und kein nestedProp2 aufweist).
Gibt es eine andere Möglichkeit, dies aufzurufen (ohne Punktnotation oder Bearbeiten des Objekts selbst), wo es nach dem Wert von nestedProp1 und nicht nach dem Wert von mainProperty fragt?
Danke für die Antwort! Dies ist definitiv ein sauberer Weg, um es im kleinen Maßstab zu tun, aber in der realen Anwendung habe ich 8 nicht geschachtelte Eigenschaften und 5 geschachtelte Eigenschaften. Darüber hinaus variieren die Eigenschaften, die zur Abfrage jedes Mal übergeben werden. Ich hoffe zu vermeiden, eine große if-Anweisung zu verwenden, um festzustellen, was verwendet wird und die Eigenschaften konvertieren. Ich hätte angeben sollen, dass ich viel mehr Eigenschaften habe, wenn ich die Frage stelle, und ich schätze die Hilfe! –