#node.js #mongodb #mongoose
#node.js #mongodb #мангуст
Вопрос:
У меня есть две модели, связанные следующим образом:
var ModelASchema = new Schema({
modelB: { type : Schema.ObjectId, ref : 'ModelB', required : true},
});
var ModelBSchema = new Schema({
text: { type: String }
});
Я пытаюсь сохранить новый экземпляр ModelA с новым экземпляром ModelB внутри него :
var modelA = new ModelA({
modelB: new ModelB({text: 'new text'})
})
modelA.save(function(err){})
Странно то, что ModelA сохраняется в БД с идентификатором объекта, но новый экземпляр ModelB не сохраняется.
Есть ли способ вставить оба документа и соединить их одним сохранением, или я должен сначала сохранить ModelB, а затем сохранить его в ModelA.
Ответ №1:
Сначала вы должны сохранить ModelB
как, поскольку вы используете его в качестве ссылки, ModelA
вы не можете сохранить его таким образом.
Когда вы сохраняете ModelA
, он не находит ссылки ModelB
на то, почему он сохраняется только ModelA
с _id
Комментарии:
1. Итак, насколько я понимаю, нет другого способа, кроме как использовать ModelB в качестве встроенного документа ModelA
2. да, вы также можете это сделать, но в соответствии с вашей схемой сначала сохраните ModelB, а затем ModelA