是否有一个函数将字符串转换为节点使用猫鼬objectId ?模式指定某个对象是ObjectId,但当它从字符串中保存时,mongo告诉我它仍然只是一个字符串。例如,对象的_id显示为objectId("blah")。


当前回答

如果您正在通过express和mongoose实现REST API,请参阅下面的代码片段。(以ADD为例)

.... 出口。AddSomething = (req,res,next) =>{ const newSomething = new SomeEntity({ _id:new mongoose.Types.ObjectId(), //它自己的ID somethingName: req.body.somethingName, 如果你想要传递一个对象ID,则传入一个foreignkey: mongoose.Types.ObjectId(req.body.theForeignKey)// }) } ...

希望有帮助

其他回答

你可以这样做:

var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");

编辑:新标准使用frommhexstring而不是fromString

var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");

你也可以用这个

const { ObjectId } = require('mongodb');
const _id = ObjectId("4eb6e7e7e9b7f4194e000001");

这是最简单的方法

如果您正在通过express和mongoose实现REST API,请参阅下面的代码片段。(以ADD为例)

.... 出口。AddSomething = (req,res,next) =>{ const newSomething = new SomeEntity({ _id:new mongoose.Types.ObjectId(), //它自己的ID somethingName: req.body.somethingName, 如果你想要传递一个对象ID,则传入一个foreignkey: mongoose.Types.ObjectId(req.body.theForeignKey)// }) } ...

希望有帮助

你可以这样做:

var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');