Mongoose/Nodejs - 填充函数仅返回用户的对象 ID

Posted

技术标签:

【中文标题】Mongoose/Nodejs - 填充函数仅返回用户的对象 ID【英文标题】:Mongoose/Nodejs - populate function only returns object id of user 【发布时间】:2018-11-23 08:02:28 【问题描述】:

目标:在引用模型中返回用户信息。

问题:我相信我的模型名称(缺乏约定)正在摆脱填充功能。我想返回我的用户名,但没有得到它。

这是我的用户模型:

const UserSchema = new Schema(
profile: 
    firstName:  type: String ,
    lastName:  type: String 
  ,
);
module.exports = mongoose.model('user', UserSchema, 'user');

还有我的物品型号:

const ItemSchema = new Schema(
user: 
    type: Schema.Types.ObjectId,
    ref: 'user',
  ,
const PlayLoop = mongoose.model('items', ItemSchema);

在我的控制器中,我的函数如下所示:

show(req, res, next) 
    const id = req.params.id
    Items.findById(_id: id)
    .populate(
      path:'User',
    )
    .exec(function(err, item) 
      if (err) console.log(err)
      console.log(item)
    )

  ,

返回的是我的物品模型:

  _id: ITEM_ID,
  title: 'some title',
  user: USER_ID,

对于用户,我想返回完整的个人资料信息。 想法?

【问题讨论】:

Items.findById(_id: id) .populate( path:'user', ) 这里User 应该是user 当我将我的函数更新为:.populate( path:'user', ) 我的用户返回 null。 【参考方案1】:

问题是客户端代码没有指向正确的数据库。

【讨论】:

以上是关于Mongoose/Nodejs - 填充函数仅返回用户的对象 ID的主要内容,如果未能解决你的问题,请参考以下文章

填充多个参考(子文档)并选择特定字段

MongoDB / Mongoose / nodejs 中的引用 - 并行化

egg-mongoose --- nodejs

Mongoose JS - 填充方法不返回完整引用的对象... - 仅返回 objectId 版本

Mongoose + NodeJS - 循环浏览文档? [复制]

Mongoose + NodeJS Phorum 模式