如何合并到数组?

时间:2016-10-29 12:49:58

标签: arrays node.js express mongoose

这是我的db数组,

[
    {
      "_id": "58144e6c0c8d7534f4307269",
      "doctor_id": "5813221ace684e2b3f5f0a6d",
      "prescription": [
        {
          "_id": "58144e6c0c8d7534f430726a",
          "medicine_id": "10011241343"
        }
]

我想只与这样的处方合并

[
    {
      "_id": "58144e6c0c8d7534f4307269",
      "doctor_id": "5813221ace684e2b3f5f0a6d",
      "prescription": [
        {
          "_id": "58144e6c0c8d7534f430726a",
          "medicine_id": "10011241343"
        },
      "prescription": [
        {
          "_id": "58144e6c0c8d7534f430726a", // it should be autogenerated
          "medicine_id": "10011241344"
        }
]

我该怎么做?

我试过这样的

var arr = data.presription
arr=req.body// which contains only medicine id

然后通过

dbModel.user.findById(data._id, function(err, data) {    
    data.prescription = arr;
    data.save(function(err) {
        if (err) {
            res.status(202).json({
                "success": "0",
            });
        } else {
            res.status(200).json({
                "success": "1"
            });
        }
    })
});

但它保存的相同。我怎么能这样做?

注意:即使我console.log(arr)只打印旧数据。

1 个答案:

答案 0 :(得分:0)

所以data.presription从一开始就是一个数组。

data.presription.push( {
    "_id": "58144e6c0c8d7534f430726a",
    "medicine_id": "10011241344"
});

这不是合并,您要做的是将项目追加(或推送)到现有数组中。