sql >> Databáze >  >> NoSQL >> MongoDB

Najděte záznamy MongoDB, kde pole pole není prázdné

Pokud máte také dokumenty, které nemají klíč, můžete použít:

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

MongoDB nepoužívejte indexy, pokud jde o $size, takže zde je lepší řešení:

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

Pokud vaše vlastnost může mít neplatné hodnoty (např. null boolean nebo další) , pak přidáte další kontrolu pomocí $types jak je navrženo v této odpovědi:

S mongo>=3,2:

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

S mongo <3.2:

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

Od vydání MongoDB 2.6 můžete porovnávat s operátorem $gt ale mohlo by to vést k neočekávaným výsledkům (podrobné vysvětlení najdete v této odpovědi):

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


  1. Jak získat všechny výsledky, pokud pole unwind v mongodb neexistuje

  2. Použití redis jako mezipaměti LRU pro postgres

  3. Redis distribuovaný přírůstek s aretací

  4. XFS vs EXT4 – Porovnání výkonu MongoDB na AWS EC2