sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB jokertegn i nøglen til en forespørgsel

Som spurgt er dette ikke muligt. Serverproblemet, du linkede til, er stadig under "problemer, vi ikke er sikre på" .

MongoDB har en vis intelligens omkring brugen af ​​arrays, og jeg tror, ​​det er en del af kompleksiteten omkring sådan en funktion.

Tag følgende forespørgsel db.foo.find({ 'a.b' : 4 } ) . Denne forespørgsel vil matche følgende dokumenter.

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

Så hvad gør "wildcard" her? db.foo.find( { a.* : 4 } ) Passer det til det første dokument? Hvad med den anden?

Desuden, hvad betyder dette semantisk? Som du har beskrevet, er forespørgslen faktisk "find dokumenter, hvor ethvert felt i det pågældende dokument har en værdi på 4" . Det er lidt usædvanligt.

Er der en specifik semantik, du forsøger at opnå? Måske vil en ændring i dokumentstrukturen give dig den forespørgsel, du ønsker.




  1. Programmatisk opdatering af felter i Mongo og Meteor

  2. Få værdier som matrix af elementer efter $lookup

  3. Redis - Fremme en slave til at master manuelt

  4. Kan ikke oprette forbindelse til mongodb errno:61 Forbindelsen blev afvist