Node: Mongoose使用数组更新用户架构



这是我的用户模式

{  
   "user_collection":[  
      {  
         "_id":"xxx",
         "name":"NAME",
         "prescription":  
            {  
               "doctor_id":  
                  [{  
                     "_id":"xxx",
                     "medicine_id":"MEDICINE_ID",
                  }]
            },
         "meal":{  
               "meal_name":{
               "start_time":"START_TIME",
               "end_time":"END_TIME"
               }  
         },
         "created_at":"CREATED_AT",
         "updted_at":"UPDATED_AT"
      }
   ]
}

注意:_id仅供理解

我需要在处方数组中插入文档。下面是条件

如果给出了新的doctor_id,它应该添加处方数组,如

{
    "_id" : ObjectId("5813288eaa0f1231de477d92"),
    "name" : "andrew",
    "prescription" : [ 
        {
            "prescription" : [ 
                {
                    "_id" : ObjectId("58143d484e26a229873b0528"),
                    "medicine_id" : "10011241343"
                }
            ],
            "_id" : ObjectId("58143d484e26a229873b0527"),
            "doctor_id" : "5813221ace684e2b3f5f0a6d"
        }
    ]
}

如果我给的是已经存在的doctor_id它应该加上

{
    "_id" : ObjectId("5813288eaa0f1231de477d92"),
    "name" : "andrew",
    "prescription" : [ 
        {
            "prescription" : [ 
                {
                    "_id" : ObjectId("58143d484e26a229873b0528"),
                    "medicine_id" : "10011241343"
                }
            ],
            "prescription" : [ 
                {
                    "_id" : ObjectId("58143d484e26a229873b0529"),
                    "medicine_id" : "10011241349"
                }
            ],
            "_id" : ObjectId("58143d484e26a229873b0527"),
            "doctor_id" : "5813221ace684e2b3f5f0a6d"
        }
    ]
}

我试过的是

dbModel.user.update({
                    _id: req.body.user_id
                }, {
                    $set: {
                        prescription:   [ { "doctor_id" : req.body.doctor_id, "prescription" : [
                        {
                            "medicine_id" : req.body.medicine_id
                        }]} ],
                    }
                }, {
                    upsert: true
                }, function(err) {
                    if (err) {
                        res.status(202).json({
                            "success": "0",
                            "message": err
                        })
                    } else {
                        res.status(200).json({
                            "success": "1",
                            "message": "Prescription given successfully"
                        });
                    }
})

我不知道如何检查doctor_id是否已经存在,如果它不存在,它应该添加一个新的数组,如果它存在,它应该添加到现有的数组

看看这个答案。

但是基本上你可以使用$运算符来标识数组中的元素。

您可以在这里看到一些mongodb数组操作符

相关内容

  • 没有找到相关文章

最新更新