Как добавить несколько элементов в массив в mongodb - PullRequest
0 голосов
/ 22 июня 2019

Проблема: чтобы ввести несколько предписаний (вспомогательный документ) в документ «Пациенты».

Я пытаюсь вставить несколько вспомогательных документов в документ в MongoDb в одном запросе.Я использовал функцию Unshift, чтобы сделать то же самое.Я могу добавить одну запись в документ, используя этот маршрут, но я хочу добавить n номер поддокумента.Когда я пытаюсь отправить несколько вложенных документов, создается только ObjectId. Я не могу добавить данные json в базу данных

Я прилагаю свой маршрут и код схемы для справки.Пожалуйста, помогите мне с тем же.

// @route    PUT api/prescription/:patientId
// @desc     Add prescription
// @access   Private

router.put('/:patientId',auth,adminDocguard, async(req,res)=>{
    const {
        mediaction,
        dosage,
        morning,
        evening
    }=req.body;
    const newPrescription={
        mediaction,
        dosage,
        morning,
        evening
    }
    try {
        const patient_profile = await Patient.findOne({

            patientId: req.params.patientId, 

          }
          );

          patient_profile.prescription.unshift(newPrescription);

          await patient_profile.save();
          res.json(patient_profile);

    } catch (err) {
        console.error(err.message);
        res.status(500).send('Server Error');
    }
});


module.exports=router;
const mongoose= require('mongoose');
autoIncrement = require('mongoose-auto-increment');
const config =require('config');
const db=config.get('mongoURI');

var connection = mongoose.createConnection(db);

autoIncrement.initialize(connection);

const PatientSchema = new mongoose.Schema({
    name:{
        type:String,
        required: true
    },
    phonenumber:{
        type:Number,
        required:true
    },
    date: {
        type: Date,
        default: Date.now
    },
    slider_1:{
        type:Number,
        required: true
    },
    slider_2:{
        type:Number,
        required:true
    },
    slider_3:{
        type:Number,
        required:true
    },
    prescription:[
        {
            mediaction:{
                type:String
            },
            dosage:{
                type:Number
            },
            morning:{
                type:Number
            },
            evening:{
                type:Number
            }
        }
    ]

});
PatientSchema.plugin(autoIncrement.plugin, {
  model:'Patient',
   field:'patientId',
   startAt:1,
   incrementBy:1
});

module.exports=Patient=mongoose.model('patient',PatientSchema);

json body:

{
 "prescription": [
        {
           "mediaction": "Crocin123",
            "dosage": 200
        },
        {
            "mediaction": "Crocin456",
            "dosage": 200
        }
    ]

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...