sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB hittar dokument där alla arrayelement är lika med något värde

Du kan använda $elemMatch frågeoperatör. Det behöver bara en fråga.

 db.test.find( { arr:  { $not: { $elemMatch: { $ne: null } } } } )

"$elemMatch" + "$ne"

Den här delen inkluderar alla dokument där arr array har inte minst ett nollvärde.

Det här är alla dokument som har minst ett värde som inte är null.

$not

Den här delen kommer att behålla alla dokument som inte finns i "$elemMatch" + "$ne" .

Dessa är alla dokument som har alla värden som null .

Vänligen tillgodose edge-fall där fältet inte finns för att se till att saker fungerar som förväntat.



  1. OData - Konstigt index med MongoDB [Mongoose:Cast Error]

  2. Hur man får serveradressen till servern som data hämtas från

  3. AWS Lambda (Node.js, v. 8.10) &Mongoose:MongoNetworkError-anslutningen till DB tog timeout

  4. Ta bort kapslade fält från alla/flera dokument i en samling - NodeJS + MongoDB