Mongodb类型的引用节点

Dob*_*boy 19 mongodb node.js

我正在尝试在节点中的模型中引用另一个对象,

User = new Schema({
        username: {
            type: String,
            index: {unique: true}
        }
});

Idea = new Schema({
        Creator: {
            type: User
        }
});
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误Undefined type at "creator" Did you try nesting Schemas? You can only nest using refs or arrays.我相信我想使用refs,但无法找到它的文档,可以有人帮助我.谢谢

Dob*_*boy 34

我在这里找到了我自己问题的答案.

User = new Schema({
    username: {
        type: String,
        index: {unique: true}
    }
});

Idea = new Schema({
    Creator: {
        type: Schema.ObjectId,
        ref: 'User'
    }
});
Run Code Online (Sandbox Code Playgroud)


doo*_*ent 16

我想对此问题添加回复,因为这是Google的第一个结果.

不,你不能使用嵌套架构,因为其他回复说.但是您仍然可以在不同的模式中使用相同的对象.

// Regular JS Object (Not a schema)
var Address = {
    address1: String,
    address2: String,
    city: String,
    postalcode: String
};

var Customer = new Schema({
    firstname: String,
    lastname: String,
    address: Address
});

var Store = new Schema({
    name: String,
    address: Address
});
Run Code Online (Sandbox Code Playgroud)

这样,您可以修改地址对象,以便在共享对象的所有模式上进行更改.