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

mongodb-forespørgsel for at matche hvert element i doc-array til en betingelse

Jeg tror ikke, der er nogen måde at gøre dette på endnu, bortset fra manuelt at gentage dine dokumenter og kontrollere hver værdi i arrayet. Det vil gå ret langsomt, fordi det skal udføre JavaScript på hvert dokument og ikke kan drage fordel af noget indeks over col.values .

Selv en $hvor JavaScript-udtryksforespørgsel virker ikke her, fordi, muligvis fordi forespørgslen indeholder et tilbagekald og er for kompleks:

db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")

Rediger: For nogle forespørgsler, herunder denne, JavaScript $hvor udtryk har brug for en returerklæring, så dette fungerer fint:

db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")


  1. hvordan man opdaterer et nummerfelt ved hjælp af et andet nummerfelt i MongoDB

  2. Er der nogen mulighed for at begrænse mongodb-hukommelsesbrug?

  3. Sådan forbindes nodeJS docker-container til mongoDB

  4. Hvordan kan jeg bede MongoDB om at evaluere noget JavaScript for at opnå værdi for et felt?