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

Trova i record MongoDB in cui il campo dell'array non è vuoto

Se anche tu hai documenti che non hanno la chiave, puoi usare:

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

MongoDB non usa gli indici se è coinvolta $ size, quindi ecco una soluzione migliore:

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

Se la tua proprietà può avere valori non validi (come null boolean o altri), quindi aggiungi un controllo aggiuntivo utilizzando $types come proposto in questa risposta:

Con mongo>=3.2:

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

Con mongo <3.2:

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

Dal rilascio di MongoDB 2.6, puoi confrontare con l'operatore $gt ma potrebbe portare a risultati imprevisti (puoi trovare una spiegazione dettagliata in questa risposta):

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