Estoy trabajando en la actualización de una canalización que no funciona correctamente en este momento. Estoy tratando de obtener datos que coincidan con las siguientes especificaciones, sin embargo, Nodejs me 'requiere' que use asignaciones de variables para mis diferentes agregaciones. Solo busco usar $ y en la etapa de coincidencia, y eliminar todos los demás operadores de la agregación. La consulta de coincidencia simplificada que se me ocurrió tiene el siguiente aspecto:
{ $and:[ {templateName: 'Bug Log'}, { 'classification': { '$elemMatch': { '$or': [ { 'name': 'Bug', 'value': true }, { 'name': 'Log', 'value': true }, ] } }, }, ], }Sin embargo, Nodejs si fuerza una asignación de variable dentro de la función que estoy usando, por lo que eliminar '$ y' o '$ o' arroja un error dentro de VScode.
return { templateName: query.TEMPLATENAME, pipelines: { $and: [ //how do I remove this and block { ...matchPipe(id), }, ...pipe2, ], }, }; return { classification: { $elemMatch: { $or: [ //how do i remove this $or block ...args, ], }, }, }; }He solucionado el error de VSCode, sin embargo, las funciones tratarán las declaraciones de retorno como matrices y reemplazarán el '$ o'/'$ y' que falta con valores numéricos, como si fuera una matriz o no me lo permite. para realizar esta operación en absoluto. Incluí la consulta devuelta después de eliminar la declaración '$ o' de la segunda declaración de devolución a continuación como referencia. ¿Cómo soluciono este error?
{"$and":[ {"templateName":"Bug Log","$and":[ {"classification":{"$elemMatch":{"0":{"nodePath":{}}}}}, {"classification":{"$elemMatch":{"0":{"name":"Bug"},"1":{"value":true}}}},{"classification":{"$elemMatch":{"0":{"name":"Log","value":true}}}}]}]}}Gracias por todo y cualquier ayuda