Почему они используют ObjectId и Number в примере Population Mongoose?

В этом примере они создают personSchema с помощью ObjectId ссылаться на Story и это я понимаю. Но тогда в storySchema почему они не делают то же самое, чтобы ссылаться на человека?

Или наоборот: зачем использовать ObjectId вместо Number in Person?

var mongoose = require('mongoose')
  , Schema = mongoose.Schema

var personSchema = Schema({
  _id     : Number,
  name    : String,
  age     : Number,
  stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});

var storySchema = Schema({
  _creator : { type: Number, ref: 'Person' },
  title    : String,
  fans     : [{ type: Number, ref: 'Person' }]
});

var Story  = mongoose.model('Story', storySchema);
var Person = mongoose.model('Person', personSchema);

1 ответ

Решение

Тип ссылки должен совпадать с ссылочной схемой. _id имущество.

В случае personSchema это Number,

storySchema с другой стороны, имеет _id поле присваивается автоматически mongoose - оно не указывается в параметрах конструктора схемы.

Mongoose присваивает каждой вашей схеме поле _id по умолчанию, если оно не передается в конструктор схемы. Назначенный тип - это ObjectId, совпадающий с поведением по умолчанию в MongoDB

Другие вопросы по тегам