Mongoose 5中的insertMany方法返回插入的ID值为对象而不是数组。

5

最近我将 Mongoose 从 4.x 升级到了 5.x,但代码在 insertMany 的返回值上出现了问题。

在升级前,插入的 id 是返回对象中的关键字,并且其值是一个数组,其中包含了所有插入的 ObjectId,如下:

[ObjectId1, ObjectId2].

更新后,insertedIds的值是这样一个对象:
{ 
  1: ObjectId1, 
  2: ObjectId2 
}

我需要使用Object.values将其转换为数组。 我在Mongo shell中尝试了insertMany方法,插入的ID是一个数组。

在升级过程中,我有遗漏了什么吗?


文档中提到它应该是一个数组,可以参考MongoDB文档https://www.mongodb.com/docs/manual/reference/method/db.collection.insertMany/或者W3School文档https://www.w3schools.com/nodejs/nodejs_mongodb_insert.asp。 - undefined
1个回答

1
mongoose 5.x支持node-mongodb-native 3.x驱动程序,这导致了您当前看到的格式中的insertedIds键。您需要进行一些代码更改,因为node-mongodb 2.x驱动程序以list形式返回结果,而3.x以map形式返回结果。

你能提供一个链接来证明这一点吗?MongoDB的文档中说应该是一个数组。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接