BSONVersionError:不支持的BSON版本,Bson类型必须来自Node.js应用程序中的bson 5.x.x

9wbgstp7  于 11个月前  发布在  Node.js
关注(0)|答案(1)|浏览(204)

**描述:**我在Node.js应用中遇到了一个BSONVersionError,错误提示“Unsupported BSON version,bson types must be from bson 5.x.x”,我相信这与MongoDB Node.js驱动或其他使用BSON的库有关。
详情:

  • 我已经检查了我的依赖项,我正在使用MongoDB Node.js驱动程序版本[您的版本]。
  • 我已经尝试使用npm install [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)将MongoDB Node.js驱动程序更新到5.x.x版本。
  • 我正在MongoDB服务器版本5.9.2上运行我的应用程序
    **代码段:**dbClientObj.collection(CollectionName).findOne({_id:_id:new ObjectId(ObjectId(PaddleId),
    **错误堆栈跟踪:**BSONVersionError:不支持的BSON版本,bson类型必须来自serializeInto的bson 5.x.x(D:\beyond-carts\PhoenixMind\SubscriptionService\node_modules\mongodb\node_modules\bson\lib\bson.cjs:3670:23)rvice\node_modules\mongodb\lib\cmap\commands.js:377:37)at Msg.toBin(D:\beyond-carts\PhoenixMind\SubscriptionService\node_modules\mongodb\lib\cmap\commands.js:366:29)at MessageStream.writeCommand(D:\beyond-carts\PhoenixMind\SubscriptionService\node_modules\mongodb\lib\cmap\message_stream.js:43:34)

at write(D:\beyond-carts\PhoenixMind\SubscriptionService\node_modules\mongodb\lib\cmap\connection.js:479:30)at Connection.command(D:\beyond-carts\PhoenixMind\SubscriptionService\node_modules\mongodb\lib\cmap\connection.js:312:13)

环境:

  • Node.js版本:18
  • MongoDB服务器版本:5.9.2
    **我尝试了什么:**我厌倦了使用bson包,如new BSON.ObjectId(<employee_id>)
    **问题:**如何解析BSONVersionError并确保我的应用程序使用的是5.x.x版本的BSON类型?
xcitsw88

xcitsw881#

在升级mongodb/mongoose包后,我在一个Node.js应用程序中遇到了同样的问题。
我的具体错误的解决方案是相当简单的,尽管错误消息没有显示任何提示,也发现了你。
在查看代码后,我很快意识到这是由于使用了

new ObjectId(...)

字符串
在我的聚合管道中。
我从mongodb包中导入了ObjectId。这是新mongoose版本中的问题:不得不从mongoose导入ObjectId,而不是像这样:

import { Types } from 'mongoose'
...
... new Types.ObjectId(...)


这可能会帮助别人,如果不是你!

相关问题