Node.js Mongoose.js字符串转换为ObjectId函数

mongodb Node.js

番长樱梅

2020-03-24

是否有使用mongoose将字符串转换为node中的objectId的功能?该模式指定某个内容是一个ObjectId,但是当它从字符串保存时,mongo告诉我它仍然只是一个字符串。例如,对象的_id显示为objectId("blah")

第3610篇《Node.js Mongoose.js字符串转换为ObjectId函数》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
Near西里泡芙 2020.03.24

我无法解析此方法(很久没搜索了)

mongoose.mongo.BSONPure.ObjectID.fromHexString

如果您的模式期望该属性为ObjectId类型,则该转换是隐式的,至少在4.7.8中是如此。

但是,您可以使用类似这样的东西,它具有更多的灵活性:

function toObjectId(ids) {

    if (ids.constructor === Array) {
        return ids.map(mongoose.Types.ObjectId);
    }

    return mongoose.Types.ObjectId(ids);
}
Stafan阿飞 2020.03.24

如果要通过express和mongoose实现REST API,请仅查看以下代码片段。(添加示例)

....
exports.AddSomething = (req,res,next) =>{
  const newSomething = new SomeEntity({
 _id:new mongoose.Types.ObjectId(), //its very own ID
  somethingName:req.body.somethingName,
  theForeignKey: mongoose.Types.ObjectId(req.body.theForeignKey)// if you want to pass an object ID
})
}
...

希望能帮助到你

番长樱梅 2020.03.24

从评论来看,您正在寻找:

mongoose.mongo.BSONPure.ObjectID.isValid

要么

mongoose.Types.ObjectId.isValid

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android