Mongoose:关联model的时候,ref指定的键不是ObjectId类型会不会有问题?


从一个 教程 里看到的一段代码:


 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);

我有一个疑问:story的_creator通过Number类型关联到Person,但是Person里_id和age都是Number类型,数据库怎么知道绑定的是_id而不是age呢?

mongodb

破碎的悲剧 10 years, 4 months ago

因为id是Person的主键(Primary Key),而age只是一个Number的普通字段。

lw0528 answered 9 years, 8 months ago

Your Answer