【问题标题】:How do I reference ObjectID in another collection in MongoDB & Node?如何在 MongoDB 和 Node 的另一个集合中引用 ObjectID?
【发布时间】:2015-10-10 20:10:51
【问题描述】:

我对此很陌生,所以请耐心等待,但是我有 2 个系列。一个叫照片,另一个叫用户。

在 Node 中,我使用 mongoose 获取数据并将其放入我的 MongoDB。我的 Schema 可以正常工作:

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

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

除非我遗漏了什么,否则我还不如在其中添加用户名并将其用作参考?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这种场景下如何实现自动填充?
    猜你喜欢
    • 2021-08-25
    • 2021-12-31
    • 1970-01-01
    • 2023-01-10
    • 2017-03-16
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多