MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Znajdź rekordy MongoDB, w których pole tablicy nie jest puste

Jeśli masz również dokumenty, które nie mają klucza, możesz użyć:

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

MongoDB nie używa indeksów, jeśli w grę wchodzi $size, więc o to lepsze rozwiązanie:

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

Jeśli Twoja właściwość może mieć nieprawidłowe wartości (np. null boolean lub inne) , następnie dodaj dodatkowy czek za pomocą $types jak zaproponowano w tej odpowiedzi:

Z mongo>=3.2:

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

Z mongo <3.2:

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

Od wydania MongoDB 2.6 możesz porównać z operatorem $gt ale może prowadzić do nieoczekiwanych wyników (szczegółowe wyjaśnienie można znaleźć w tej odpowiedzi):

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie MongoDB na wypełnionych polach

  2. Wbudowana MongoDB podczas uruchamiania testów integracyjnych

  3. Implementacja paginacji w mongodb

  4. Dynamiczne połączenie bazy danych z mongodb lub mongoose z nodejs

  5. MongoDB konwertuje datę na ciąg