In this例如,他们创建personSchema
using ObjectId
来参考Story
我明白这一点。但随后在storySchema
他们为什么不做同样的事情来引用这个人呢?
或者反过来:为什么在 Person 中使用 ObjectId 而不是 Number?
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);
引用的类型必须与引用的架构相同_id
财产。
的情况下personSchema
it's a Number
.
storySchema
另一方面,有_id
由 mongoose 自动分配的字段 - 未在模式构造函数的参数中指定。
如果未将 _id 字段传递给 Schema 构造函数,则默认情况下 Mongoose 会为每个 schema 分配一个 _id 字段。 assiged 类型是一个 ObjectId,与 MongoDB 的默认行为一致
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)