@Astralian

Связь с саб-схемой через populate()

Всем привет.
Такой вопрос по MongoDB и Mongoose ORM

Есть вот такие две модели в Mongoose. В одной, есть саб-схема.

var mongoose = require('mongoose'),
  Clinic = require('./clinic'),
  Schema = mongoose.Schema;
 
 
var ClinicSchema = mongoose.Schema({
	name: {
		type: String,
		trim: true,
		required: true
	},
 
	procedures: [new Schema({
		name: {
			type: String,
			trim: true,
			required: true
		},
 
		alias: {
			type: String,
			trim: true,
			required: true
		},
 
		time: {
			type: Number
		},
 
		customTime: {
			type: Number
		}
	}, {
		ref: 'Clinic'
	})]
});
 
module.exports = mongoose.model('Clinic', ClinicSchema);


var mongoose = require('mongoose'),
  Patient = require('./patient'),
	User = require('./user'),
	Clinic = require('./clinic'),
	Schema = mongoose.Schema;
 
var RecordSchema = Schema({
	doctor: {
		type: Schema.Types.ObjectId,
		ref: 'User'
	},
 
	clinic: {
		type: Schema.Types.ObjectId
	},
 
	date: {
		type: Date,
		default: new Date()
	},
 
	patient: {
		type: Schema.Types.ObjectId,
		ref: 'Patient'
	},
 
	procedures: {
		type: Schema.Types.ObjectId
	}
});
 
module.exports = mongoose.model('Record', RecordSchema);


Record хранит айдишники из всех таблиц. Через ref и populate, я получаю все связки, кроме процедур.
Это видимо из-за того что они записываться саб-схемой.

Вопрос в том, как мне из Record.procedures получить все записи по айдишникам из Clinic.procedure
Record.find().populate('doctor patient').populate('procedures')
  • Вопрос задан
  • 3597 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы