MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Platzhalter im Schlüssel einer Abfrage

Wie gesagt, das ist nicht möglich. Das Serverproblem, das Sie verlinkt haben, befindet sich immer noch unter "Probleme, bei denen wir uns nicht sicher sind" .

MongoDB verfügt über einige Intelligenz in Bezug auf die Verwendung von Arrays, und ich denke, das ist Teil der Komplexität, die eine solche Funktion umgibt.

Nehmen Sie die folgende Abfrage db.foo.find({ 'a.b' : 4 } ) . Diese Abfrage stimmt mit den folgenden Dokumenten überein.

{ a: { b: 4 } }
{ a: [ { b: 4 } ] }

Was macht hier also "Wildcard"? db.foo.find( { a.* : 4 } ) Stimmt es mit dem ersten Dokument überein? Was ist mit dem zweiten?

Und was bedeutet das semantisch? Wie Sie beschrieben haben, lautet die Abfrage effektiv "Finde Dokumente, in denen ein beliebiges Feld in diesem Dokument einen Wert von 4 hat" . Das ist etwas ungewöhnlich.

Gibt es eine bestimmte Semantik, die Sie erreichen möchten? Vielleicht bringt Ihnen eine Änderung in der Dokumentstruktur die gewünschte Abfrage.