首页 > 解决方案 > insertMany 方法返回 Object 中的 insertIds,而不是 Mongoose 5 中的 Array

问题描述

最近我将 Mongoose 从 4.x 更新到 5.x,代码在 insertMany 返回值处被破坏。

在更新之前,insertedIds 是返回对象中的键,值是一个数组,其中包含所有插入的 ObjectId,例如

[ObjectId1, ObjectId2].

更新后,insertedIds 的值是这样的 Object:

{ 
  1: ObjectId1, 
  2: ObjectId2 
}

我必须使用 Object.values 将其转换为数组。我在 Mongo shell 中尝试了 insertMany 方法,insertedIds 是 Array。

我在升级过程中错过了什么吗?

标签: mongodbmongoose

解决方案


mongoose 5.x 支持 node-mongodb-native 3.x 驱动程序,它的结果是insertedIds您现在看到的格式的密钥。您需要进行一些代码更改,因为 node-mongodb 2.x 驱动程序返回结果,list但不是 3.x,它返回一个map.


推荐阅读