Ссылочный узел типа Mongodb - PullRequest
       2

Ссылочный узел типа Mongodb

19 голосов
/ 18 февраля 2012

Я пытаюсь ссылаться на другой объект в модели в узле,

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

Idea = new Schema({
        Creator: {
            type: User
        }
});

, но я получаю эту ошибку Undefined type at "creator" Did you try nesting Schemas? You can only nest using refs or arrays. Я думаю, что хочу использовать ссылки, но не смог найти документацию по нему, может некоторыепомогите мне.Спасибо

Ответы [ 4 ]

34 голосов
/ 18 февраля 2012

Я нашел ответ на свой вопрос здесь.

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

Idea = new Schema({
    Creator: {
        type: Schema.ObjectId,
        ref: 'User'
    }
});
16 голосов
/ 30 ноября 2013

Я бы хотел добавить ответ на этот вопрос, потому что это первый результат в 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
});

Таким образом, вы можете изменить объект адреса, чтобы сделать изменения доступными для всех ваших схем, совместно использующих объект.

0 голосов
/ 02 мая 2013

Я решил решить аналогичную проблему для своего проекта, сделав вложенный документ вложенным типом

    Foo = new Schema({
        name: String,
        bar: {
            name: String
        }
    });

Очевидно, что это не сработает, если вы хотите, чтобы Bar была собственной моделью.Возможно, потому что вы ссылаетесь на него как на модель в других объектах.В моем случае это было все, что мне нужно было сделать, но в разделе «Субдокументы» руководства Mongoose это не упоминается как вариант, поэтому я добавляю к этому обсуждению.

0 голосов
/ 18 февраля 2012

Вот ссылка на руководство @ refs.

Tho Вы не можете использовать ссылки на уровне разработки схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...