Итак, у меня есть такая схема:
var article = new mongoose.Schema({
title : String,
comments : [{
pe: mongoose.Schema.Types.ObjectId,
ref: 'Comment'
}]
});
а также:
var comment = new mongoose.Schema({
created : Date,
text : String
});
теперь у меня есть небольшое угловое приложение, когда я получаю с помощью своего API и статьи, я получаю что-то вроде:
{
title : "please help me"
comments : []
}
теперь на переднем конце я нажимаю некоторые комментарии, и новый объект:
{
title : "please help me"
comments : [{
text : "Now, go f**k yourself",
date : "1 January 1970 00:00:00 UTC."
}]
}
когда я вызываю API, и я обновляю документ, я бы хотел, чтобы этот монго создал сам комментарий к субобъекту, есть ли способ? Должно ли оно делать это автоматически?
Я бы написал схему статьи таким образом (отказ от ответственности: я не пробовал mongoose):
var article = new mongoose.Schema({
_id: String // or mongodb.ObjectId? I'm not sure.
title : String,
comments : [{
_id: String // this field is not nessesary
text: String,
date: String
}]
});
var comment = new mongoose.Schema({
created : Date, // created or date?
text : String
});
Когда вы получите с собой api, вы получите что-то вроде:
{
"_id": "ndrjgnd..fesf",
"title": "grdgrdgr",
comments: [ {"text": "hello", "created": "2016:...:"}, ... , ]
}
Затем вы можете вводить новые комментарии из интерфейса:
{
"articleId": "ndrjgnd..fesf", // this is important.
"text": "balabala"
}
И обновите db: db.article.update( {_id: ariticleId}, {$push: newComment})