Использование мангуста Заполнить: http://mongoosejs.com/docs/populate.htmlЗачем нужно заполнять Мангуста?
Это швы, что мангуст вынуждает меня объявить значение реф для заселить, когда я сначала создать документ, но в моем случае я не реф информации пока нет. Когда я пытаюсь создать новый документ, обеспечивая при этом пустой строке я получаю в моем поле разработчиков я получаю:
{"message":"Cast to ObjectId failed for value \"\" at path \"developer\"","name":"CastError","type":"ObjectId","value":"","path":"developer"}
объекта, который я спасительный через мангуст:
var Project = {
name: 'Coolproject',
status: 'pending',
developer: '',
type: 'basic',
};
Project.create(req.body, function(err, project) {
if(err) { return handleError(res, err); }
return
});
My Model:
var ProjectSchema = new Schema({
name: String,
status: {type:String, default:'pending'},
developer:{type: Schema.Types.ObjectId, ref: 'User'},
type:String
});
В принципе, мне нужно установить его позже, но это не шов, как это возможно. В настоящее время моя работа заполняет его фиктивным пользователем до поздней, но это меньше, чем желательно.
Мысли?
Update
Понял, что если я предоставить идентификатор объекта, как значение (55132a418b3cde5546b01b37) это позволяет мне сохранить документ. Очень странно. Угадайте, что он просто решил, что документ может двигаться дальше. Подумайте, почему это не происходит для пустого значения.
Я не понимаю, что вы имеете в виду. Не позволяет ли вы создать документ, не определяя пользователя для разработчика? или это не позволяет вам определить схему без существующей модели пользователя. Как заселяют связь с этим? вопрос выглядит очень X/Y ish. –
Ahhh, да, очень верно. Обновлено, надеюсь, будет немного более ясно. Я хочу, чтобы сохранить ссылку позже, а не когда я изначально создал родительский документ. – Justin
Произошла ли эта ошибка при создании нового документа? вы сказали сохранить, но если вы сохранили это, это означало бы, что вы, по крайней мере, смогли в какой-то момент создать документ. Можете ли вы включить код, вызывающий эту ошибку? –