CastError:在路径“ _id”中,值“ xxx”的强制转换为ObjectId失败

时间:2020-02-04 08:44:30

标签: arrays json mongoose

我的请求数组如下:

{
"acceptedBookings": [
    {
        "id": "e1f66d7a852986709f665c3",
        "Date": "2020-02-04T05:03:25.332Z"
    }
  ]
}

我想为每个“ id”更新“ date”。但是,如果我搜索为

await Booking.findById( acceptedBookings[0].id )

await Booking.findOne({_id : acceptedBookings[0].id})

没有回应

1 个答案:

答案 0 :(得分:0)

您访问的成员错误,您想要的是: 假设您的map

  const acceptedBookings = {
  "accepted": [{
          "id": "e1f66d7a852986709f665c3",
          "Date": "2020-02-04T05:03:25.332Z"
      },
      {
          "id": "i123",
          "Date": "2020-02-04T05:03:25.332Z"
      },
      {
          "id": "i123",
          "Date": "2020-02-04T05:03:25.332Z"
      }
  ]
};

console.log(acceptedBookings.accepted[0].id); // e1f66d7a852986709f665c3
console.log(acceptedBookings.accepted[1].id); // i123

await Booking.findById( acceptedBookings.accepted[0].id ) //should work fine

记住您创建的对象不是array,而是map/object和一对key: value 因此,首先获取正确的数组/元素,然后访问其成员