У меня есть следующие модели мангуста в моих экспрессе-приложениях:mongoose - возможная круговая зависимость?
//user.js
var mongoose = require('mongoose');
var dog = require('./dog');
var userSchema = mongoose.Schema({
user: { type: String, required: true },
pass: { type: String, required: true },
dogs: [dog.dogSchema],
});
//dog.js
var mongoose = require('mongoose');
var dogSchema = exports.dogSchema = mongoose.Schema({
name: { type: String, required: true },
});
Теперь из моих маршрутов я создаю новый пользователь, как это:
var user = require('../models/user');
var dog = require('../models/dog');
dog = new dog.Dog(dogData);
user = new user.User(data); //this will of course contain also dogData
user.save(next);
это правильный способ сделать этот вид операции? У меня такое чувство, что я могу как-то генерировать круговую зависимость, и в любом случае это не выглядит правильным для меня. Любые идеи о том, как создавать поддокументы, где схема из другого файла модели?
Это очень полезно. Что, если вы хотите, чтобы у человека были связи с другими людьми (например, родственники, из-за отсутствия лучшего примера). Не могли бы вы сделать то же самое для ссылки на массив объектов той же модели? Могли бы вы добавить 'родственников: [{type: Schema.Types.ObjectId, ref: 'Person'}]' to personSchema? – ramdog