mongodb mongoose isValidObjectId()始终返回false

e5nqia27  于 2023-02-03  发布在  Go
关注(0)|答案(1)|浏览(142)

我在mongoose中遇到了一个奇怪的isValidObjectID()问题,在我将TypeScript添加到Node项目中之后出现了这个问题,因此必须更新mongoose,并通过在package.json中覆盖它来强制mongoose使用更新的mongodb依赖项

"overrides": {
    "mongoose": {
      "mongodb": "^4.3.0"
    }

这样做之后,我所有涉及isValidObjectID()的测试都开始失败,我非常确定传递给isValidObjectID()的是一个有效的mongodb对象id,但它仍然返回false。

import { isValidObjectId, Types } from "mongoose";

isValidObjectId('61cc6d8676a69c41fd3408ea'); // returns false
isValidObjectId(new Types.ObjectId('61cc6d8676a69c41fd3408ea')); // returns false

我甚至尝试了文档中的一些应该返回true的示例,但它们都返回false!

isValidObjectId(new Types.ObjectId()); // returns false!
isValidObjectId('0123456789ab'); // returns false
isValidObjectId(6); // returns false

而根据文档,它们都应该返回true。
我使用的是mongoose版本6.1.9,由于package.json覆盖,mongoose使用的是mongodb版本4.3.1

pu82cl6c

pu82cl6c1#

显然,这是mongoose 6.1.9更新到mongoose 6.2.0中的一个错误,现在已修复

相关问题