我如何在MongoDB中的另一个集合中引用ObjectID&节点?

时间:2015-07-21 11:34:27

标签: node.js mongodb mongoose

我对此很新,所以忍受我,但我有2个收藏。一个叫照片,另一个叫用户。

在Node中,我正在使用mongoose将数据放入我的MongoDB中。我的架构让我的工作正常:

var picSchema = new Schema({
        uid: String,
        pid: String,
        oFile: String
});

我想要做的是uid,我想为上传照片的用户添加ObjectId。我可以将它作为String传递,但是我认为我必须将字段设置为ObjectId,但似乎我不能这样做?

除非我遗漏了某些内容,否则我可以在那里添加用户名并将其用作参考?

1 个答案:

答案 0 :(得分:1)

使用mongoose.Schema.Types.ObjectId使用ObjectId填充字段。在这种情况下,您将使用User(或者您的用户架构的名称)。

var picSchema = new Schema({
            uid: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
            pid: String,
            oFile: String
});

此外,如果您希望在Populate文档中展开用户文档,还可以使用Mongoose方法Pic。例如:

Pic.find({})
  .populate('uid')
  .exec(function(err, pic) {
    console.log(pic);
    // do something
});