Сохранение массива в базу данных MongoDB

#node.js #mongodb #mongoose

#node.js #mongodb #мангуст

Вопрос:

Допустим, у меня есть схема для моей коллекции MongoDB.

    module.exports = (mongoose, Schema) => {
      let eventSchema = new Schema({
        name: String
        values: ???
      });
    
      return mongoose.model('Event', eventSchema);
    };
 

Я получаю json, подобный этому:

 {"1965": 10000000, "1966": 20000000, "1967": 300000}
 

Я хочу, чтобы этот массив находился в поле «значения» eventSchema. Как мне сохранить его в моей базе данных?
Годы меняются, и количество объектов в массиве всегда разное.

Ответ №1:

Попробуйте что-то вроде этого:

 const payload = { name : "test" , values : {"1965": 10000000, "1966": 20000000, "1967": 300000}
 }

const  event = new Event(payload)

event.save(function (err) {
  if (err) return console.log(err);
  // saved!
});
 

и убедитесь, что ваша схема :

 let eventSchema = new Schema({
        name: String
        values: Object
      });
 

Комментарии:

1. Большое спасибо, я думал о вложенных документах и пропустил более простое решение!