2017-04-27 111 views
0

我有一个集合,如下所示, enter image description here如何查询和填充文档中的子文档?

我要查询和填充只审查,其中有FROMUSER用户ID“233232”
现在我的助手类如下,

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); 
       }); 
      }) 
     } 

什么我应该通过matchedCond和projCond吗?

模式

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; 
}; 
+0

您可以粘贴架构定义文件吗? – ifiok

+0

@ifiok添加的模式文件 –

回答

1

你matchedCond

{ fromUser.userid : "youruserid" } 

你projCond

{ document: "$$ROOT" } 

将与所有属性返回的对象。

+0

它不返回任何东西 –

+0

不应该是reviews.fromUser.userid? –

+0

什么是您的电子邮件ID?我在mongo查询中有一些查询。需要r帮助 –