首页 文章

在mongoose中使用任何JS对象的人口

提问于
浏览
0

我有一个任意的js对象:

{
 createdBy : ObjectId('some_id'),
 project : ObjectId('some_id'),
 remarks : <string>
}

它不属于任何架构 .

我有两个收集项目和用户 .

让我们假设在上面的js对象中,createdBy字段应该是用户集合中文档的一些ObjectId(在其模式中有字段username,fullName),项目字段应该是项目集合中项目文档的一些ObjectId(带字段键和名称)它的架构) .

现在上面的对象不是架构也没有引用,

我想填充上面的对象,以便产生以下结果

{
 createdBy : {
    _id : ObjectIdOfRefUserDocument,
    username : 'username',
    fullName : 'users_full_name'
  },
  project : {
    _id : ObjectIdOfRefProjectDocument,
    name : 'project_name',
    key : 'project_key'
  },
  remarks : <some string>
}

如何以最简单的方式填充上述对象 . ?

1 回答

  • 0

    您可以使用Model.populate填充普通对象:

    var obj = {
      createdBy : ObjectId('some_id'),
      project : ObjectId('some_id'),
      remarks : <string>
    };
    
    User.populate(obj, { path: 'createdBy' }, function(err, obj) {
      Project.populate(obj, { path: 'project' }, function(err, obj) {
        // obj's createdBy and project fields are both populated.
      });
    });
    

相关问题