Добавление вложенного объекта в объект с помощью Mongoose - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь добавить вложенный элемент в Mongoose, но не могу заставить его работать. Я пытаюсь добавить объект «messages» к существующему объекту «subitem»

Мой JSON в MongoDB

{
    "_id" : ObjectId("5c33438d3d1e1323111fce6e"),
    "title" : "Nieuws",
    "__v" : 0,
    "subitem" : [ 
        {
            "title" : "Nieuwsberichten",
            "messages" : [ 
                {
                    "title" : "bericht1"
                }, 
                {
                    "title" : "bericht2"
                }
            ]
        }, 
        {
            "title" : "Nieuwsarchief"
        }, 
        {
            "title" : "Nieuwsbrief"
        }
    ]
}

В экспрессе:

postController.postArticles = function(req, res,item) {
  var id = req.body.id;
  var saveData = {
    title: req.body.title,
    text: req.body.text
  };
  item.update({_id: id}, {$push:{'subitem.messages': saveData}},(err, result) => {
  });
};

И мангуст Модель:

var menuItems = new mongoose.Schema({
  title : String,
  subitem : {
    title: String,
    messages : {
      title: String,
      text: String
    }
  }
}, {collection: 'menu_items'});

1 Ответ

0 голосов
/ 14 января 2019

Ваша схема не соответствует вашему объекту JSON. В вашей Схеме сообщений это объект, а в JSON это массив объектов.

Попробуйте следующую схему:

var menuItems = new mongoose.Schema({
  title : String,
  subitem : {
    title: String,
    messages : [{
      title: String,
      text: String
    }]
  }
}, {collection: 'menu_items'});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...