Tengo una colección de la siguiente manera,
quiero consultar y completar solo las reseñas que tienen el ID de usuario fromUser '233232'
En este momento, mi clase de ayuda es la siguiente,
queryaggregateWithProject: function (model, matchedCond, prjCond) { return new Promise(function (resolve, reject) { model.aggregate([ {$match: matchedCond}, {$project: prjCond} ], function (error, data) { if (error) reject(error); resolve(data); }); }) }
¿Qué debo pasar para matchedCond y projCond?
Esquema
module.exports = function () { var model = null; var modelName = '_purchase'; try { model = dbService.getModel(modelName); } catch (error) { var userSchema = dbService.createEntityDef({ userId: { type: String }, urlPicture: { type: String } }); var reviewSchema = dbService.createEntityDef({ fromUser: userSchema, toUser: userSchema, rating: { type: Number }, comment: { type: String } }) var purchaseSchema = { _id: { type: dbService.getPrimaryKeyType(), index: true }, purchaseId: { type: String }, reviews: [reviewSchema] }; model = dbService.createModel(modelName, purchaseSchema, { name: 'text' }, modelName); } return model; };
Su condición coincidente
{ fromUser.userid : "youruserid" }
Tu proyecto
{ document: "$$ROOT" }
devolverá los objetos con todas las propiedades.