Realizar consulta dinámica con Mangosta.

Estoy tratando de hacer una condición dinámica utilizando Mongoose pero no funciona como me imaginaba.

el codigo es asi

id = req.params.questionId; index = req.params.index; callback = function(err,value){ if(err){ res.send(err) }else{ res.send(value) } }; conditions = { "_id": id, "array._id": filterId }; updates = { $push: { "array.$.array2."+index+".answeredBy": userId } }; options = { upsert: true }; Model.update(conditions, updates, options, callback); 

Como ves, estoy tratando de hacer una condición dinámica usando la variable “índice”. ¿Es posible hacer así?

¡Gracias de antemano!

Necesitas crear tu objeto de updates en dos pasos:

 var updates = { $push: {} }; updates.$push["array.$.array2." + index + ".answeredBy"] = userId; 

Actualizar

Ahora que node.js 4+ admite nombres de propiedades calculados , puede hacerlo en un solo paso:

 var updates = { $push: { ["array.$.array2." + index + ".answeredBy"]: userId } };