我有两个不同的模式,我把它放在两个单独的文件中,但问题是如何引用模式对象ID?从一个文件到另一个文件。
这基本上是单个文件中的两个模式
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)person.js
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : [{ type: Schema.Types.ObjectId, ref: "?" }]
});
module.exports = mongoose.model('Person', personSchema);
2)story.js
var storySchema = Schema({
_creator : { type: Number, ref: '?' },
title : String,
fans : [{ type: Number, ref: '?' }]
});
module.exports = mongoose.model('Story', storySchema);
我应该在两个模式文件中放入ref?因为它们都在一个单独的文件中。
答案 0 :(得分:2)
ref属性只是字符串,它们在单独的文件中并不重要。
尽管他们在不同的文件中执行以下操作仍然有效:
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' }]
});