📌  相关文章
📜  检查 ObjectId 在 mongoose 中是否有效 - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:50.873000             🧑  作者: Mango

检查 ObjectId 在 Mongoose 中是否有效

在 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 了。

需要注意的是,该函数只会检查字符串的格式是否正确,字符串所对应的文档是否存在于数据库中需要通过其他方式来验证。