我正在尝试使用 @nestjs/mongoose 执行 mongodb 聚合,并且我传递以下查询:
$match: {
organizationId: new ObjectId(organizationId),
}
当我将organizationId作为纯字符串传递时,我没有得到任何结果,当我传递ObjectId的实例(从bson / mongodb / mongoose包导入)时,我收到以下错误:
{
"type": "TypeError",
"message": "value.serializeInto is not a function",
"stack":
TypeError: value.serializeInto is not a function
at serializeObjectId (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:240:18)
at serializeInto (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:892:17)
at serializeObject (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:295:20)
at serializeInto (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:875:17)
at serializeObject (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:295:20)
at serializeInto (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:655:17)
at serializeObject (/packages/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:295:20)
at serializeInto (/database/node_modules/mongodb/node_modules/bson/src/parser/serializer.ts:875:17)
at Object.serialize (/packages/database/node_modules/mongodb/node_modules/bson/src/bson.ts:108:30)
at OpMsgRequest.serializeBson (/packages/database/node_modules/mongodb/src/cmap/commands.ts:572:17)
}
使用
find
方法时也会发生这种情况。
有人遇到过这个问题吗?有没有一种方法可以简单地查询数据库来查找与 ObjectId(而不是 _id)匹配的文档
我尝试用断点调试,似乎
serializeInto
不是ObjectId方法,那么为什么bson和mongoose使用这个呢?
将 mongoose 和 mongodb 更新到最新版本对我有用。