Bạn có thể tạo tham chiếu đồng thời theo hai hướng mà không tạo ra các vấn đề về vòng tròn. Tạo tham chiếu từ tài liệu này sang tài liệu khác bằng cách sử dụng ref
. Từ tài liệu:
http://mongoosejs.com/docs/populate.html
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);
Sau đó, bạn có thể chọn tải tài liệu phụ bằng cách sử dụng populate
Story.find({ --your criteria-- })
.populate('_creator')
.exec(function (err, story) {../});
Sau đó, bạn có thể lưu trữ 2 lược đồ trong các tệp .js riêng biệt và require
cả hai