СРЕДСТВО Mongodb заменить коллекцию и создавать документы

0

Итак, у меня есть такая схема:

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, и я обновляю документ, я бы хотел, чтобы этот монго создал сам комментарий к субобъекту, есть ли способ? Должно ли оно делать это автоматически?

Теги:
express
mongoose
mean

1 ответ

0

Я бы написал схему статьи таким образом (отказ от ответственности: я не пробовал 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})

  • 0
    Правда, это то, что я попытался упростить структуру в примере. В моем приложении объектный комментарий имеет сложную структуру, и я предпочитаю иметь его отдельно в другой схеме, потому что я должен иметь возможность запрашивать его.
  • 0
    @GaetanoPessa так, в чем проблема
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню