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

Find MongoDB-poster, hvor arrayfeltet ikke er tomt

Hvis du også har dokumenter, der ikke har nøglen, kan du bruge:

ME.find({ pictures: { $exists: true, $not: {$size: 0} } })

MongoDB bruger ikke indekser, hvis $size er involveret, så her er en bedre løsning:

ME.find({ pictures: { $exists: true, $ne: [] } })

Hvis din ejendom kan have ugyldige værdier (såsom null boolean eller andre), så tilføjer du en ekstra kontrol ved hjælp af $types som foreslået i dette svar:

Med mongo>=3.2:

ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })

Med mongo <3.2:

ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })

Siden MongoDB 2.6 udgivelsen, kan du sammenligne med operatoren $gt men kan føre til uventede resultater (du kan finde en detaljeret forklaring i dette svar):

ME.find({ pictures: { $gt: [] } })


  1. Hvordan sikrer man en unik vare i et array baseret på specifikke felter - mongoDB?

  2. Mongo gennemsnitlig aggregeringsforespørgsel uden gruppe

  3. Spring boot + Redis - Genererer en mærkelig nøgle

  4. Sådan gør du:Administrer HBase-data via Hue