sql >> Base de Datos >  >> NoSQL >> MongoDB

Coincidencia de un campo de matriz que contiene cualquier combinación de la matriz proporcionada en MongoDB

Puede hacer esto combinando múltiples operadores:

db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})

El $elemMatch con el $nin es encontrar los documentos donde un solo tags el elemento no es ni 'Rad' ni 'Cool', y luego el padre $not invierte la coincidencia para devolver todos los documentos en los que no coincidieron con ningún elemento.

Sin embargo, esto también devolverá documentos donde tags falta o no tiene elementos. Para excluirlos, debe agregar un calificador que asegure tags tiene al menos un elemento:

db.test.find({
    tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
    'tags.0': {$exists: true}
})