Ошибка при использовании _id в качестве типа свойства в схеме Mon goose - PullRequest
0 голосов
/ 04 февраля 2020

Я учу MongoDB и понедельник goose на данный момент. У меня есть архив и пользовательская схема в пн goose:

архив. js

var mongoose = require('mongoose');
var User = require('../users/user');

var notesSchema = new mongoose.Schema({
    author: User.userId,
    text: String,
    files:[String]
});

var archiveSchema = new mongoose.Schema({
    name: String,
    priority: String,
    deadline: Date,
    status: String,
    assigned_memnbers: [User.userId],
    notes: [notesSchema],
  });

  archiveSchema.virtual('archiveId').get(function() {
    return this._id;
});

module.exports = mongoose.model('Archive', archiveSchema);

пользователь. js:

var mongoose = require('mongoose');

var userSchema = new mongoose.Schema({
    username: String,
    mail: String,
    bio: String,
    password: String
});

userSchema.virtual('userId').get(function() {
    return this._id;
});

module.exports = mongoose.model('User', userSchema);

Когда Я запускаю свой сервер, я получаю сообщение об ошибке

TypeError: Invalid value for schema path `author`, got value "undefined"

Проблема возникает из author: User.userId, но я не знаю, как сделать ссылку между двумя таблицами.

Для справки Вот как выглядит мой полный дизайн БД: enter image description here

Любые предложения о том, как решить эту проблему или улучшить общий дизайн, приветствуются. Спасибо тебе.

1 Ответ

1 голос
/ 04 февраля 2020

Я думаю, что вы говорите о другой коллекции:

author: { type: Schema.Types.ObjectId, ref: 'User' }

и

assigned_members: [{ type: Schema.Types.ObjectId, ref: 'User' }]

должны работать нормально.

Источник: пн goose население

...