我在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
1条答案
按热度按时间pu82cl6c1#
显然,这是mongoose 6.1.9更新到mongoose 6.2.0中的一个错误,现在已修复