Answers:
您可以这样做:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
您可以这样做:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
编辑:新标准具有fromHexString而不是fromString
mongoose.mongo
我的一部分。有人可以确认吗?
我无法解析此方法(很久没搜索了)
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);
}
如果要通过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
})
}
...
希望能帮助到你