мангуст — вставить документ со связанными

#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