【问题标题】:How can I update a child object in an Array in mongodb如何更新 mongodb 数组中的子对象
【发布时间】:2017-05-21 12:58:33
【问题描述】:

我有以下问题,我正在编辑患者信息并想更新此患者信息。最好的方法是什么?

var department = mongoose.model('department', {
  departmentName: String,
  rooms: [{
    roomNumber: String,
    width: Number,
    height: Number,
    posX: Number,
    posY: Number,
    sanitary: Boolean,
    childcareArea: Boolean,
    lounge: Boolean,
    patient: {
      patientnr: Number,
      firstname: String,
      lastname: String,
      reasonOfHospitalization: String,
      dateOfHospitalization: String,
      expectedDateOfDischarge: String,
      vegetarian: Boolean,
      needsHelp: Boolean,
      comments: String,
      department: String,
      roomNumber: String,
      nextTreatment: {
        type: String,
        shortDescription: String,
        timestamp: String
      }
    }
  }]
});

我可能需要这样的东西......

app.post('/api/departments/patients/:id', function(req, res) {
  department.update({..})
});

【问题讨论】:

    标签: angularjs node.js mongodb mongoose


    【解决方案1】:

    你需要一些类似的东西

    app.post('/api/departments/patients/:id', function(req, res) {
    
        //first, find the document
        department.findById(req.params.id, function(err, dept){
    
            //make changes accordingly
            dept.patient.firstname = 'Changed'
    
            dept.save(function(err){
                res.send ('Saved');
            })
        });
    });
    

    【讨论】:

      【解决方案2】:

      因为我看到你也在使用 angular js,所以你可以传递你想要更新的元素。

      所以你的 req.body 可以包含你想要更新的变量。 记住它的 $set 用于更新对象和 $push 用于更新数组

      现在

         app.post('/api/departments/patients/:id', function(req, res) {
        department.findByIdAndUpdate({id : req.params.id}, 
           {
            $push:
              {  
              rooms.roomnumber: req.body.departmentName 
              }}, {new : true}), function(err,doc){
             console.log(doc);
           })
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2021-09-27
        • 2023-01-12
        相关资源
        最近更新 更多