📅  最后修改于: 2023-12-03 15:10:50.873000             🧑  作者: Mango
在 Mongoose 中,ObjectId 是用于唯一标识文档的一种类型。当我们需要检查一个字符串是否为有效的 ObjectId 时,我们可以使用下面这段代码:
const mongoose = require('mongoose');
function isValidObjectId(id) {
return mongoose.Types.ObjectId.isValid(id);
}
该函数使用 Mongoose 的 Types.ObjectId.isValid()
方法来检查给定的字符串是否为有效的 ObjectId,如果是则返回 true
,否则返回 false
。
我们也可以将该函数作为 Mongoose 的静态方法定义在模型中,以便在模型实例中直接访问:
const mongoose = require('mongoose');
const schema = new mongoose.Schema({ name: String });
schema.statics.isValidObjectId = function(id) {
return mongoose.Types.ObjectId.isValid(id);
};
const MyModel = mongoose.model('MyModel', schema);
console.log(MyModel.isValidObjectId('invalid')); // false
console.log(MyModel.isValidObjectId('507f1f77bcf86cd799439011')); // true
这样我们就可以在 MyModel 中直接调用 isValidObjectId()
方法来检查字符串是否为有效的 ObjectId 了。
需要注意的是,该函数只会检查字符串的格式是否正确,字符串所对应的文档是否存在于数据库中需要通过其他方式来验证。