Mongodb: ¿Buscar todos los documentos donde al menos un elemento de matriz no coincide?

Tengo un documento de grupo definido como este en Mongoose:

var GroupSchema = new Schema({ name: String, sections: [{type: ObjectId}] }); 

Como es visible, el grupo contiene una matriz de secciones. También tengo otra matriz de objectId’s llamado archived_sections

Quiero encontrar todos los grupos cuya al menos una sección NO esté en la matriz archived_sections. ¿Como hacer eso?

Estaba tratando de usar el operador $ nin de esta manera:

 Group.find({ sections: { $nin: archived_sections }).exec(function(err, groups){ res.send(groups); }); 

Pero esto me está dando solo a aquellos grupos cuyo campo de secciones contiene una matriz con NO elementos que coincidan con un elemento en la matriz archived_sections.

Quiero encontrar todos los grupos en los que, por lo menos, la sección NO esté en la matriz archived_sections. ¿Cómo lograr eso? Por favor ayuda

Puede hacer esto envolviendo su $nin en un operador $elemMatch para que el $nin se aplique por separado a cada elemento de las sections lugar del conjunto de elementos como un grupo:

 Group.find({ sections: { $elemMatch: { $nin: archived_sections } } }) .exec(function(err, groups){ res.send(groups); } ); 

Si al menos un elemento satisface la consulta $elemMatch , el documento coincide.