How can I generate an ObjectId with mongoose?

mongodb, mongoose, node.js

Solution

You can find the `ObjectId` constructor on `require('mongoose').Types`. Here is an example:

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

`id` is a newly generated `ObjectId`.

Note: As Joshua Sherman points out, with Mongoose 6 you must prefix the call with `new`:

var id = new mongoose.Types.ObjectId();

You can read more about the `Types` object at Mongoose#Types documentation.

Problem

I'd like to generate a MongoDB `ObjectId` with Mongoose. Is there a way to access the `ObjectId` constructor from Mongoose? This question is about generating a new `ObjectId` from scratch. The generated ID is a brand new universally unique ID. Another question asks about creating an `ObjectId` from an existing string representation. In this case, you already have a string representation of an ID—it may or may not be universally unique—and you are parsing it into an `ObjectId`.

Original source

Related problems