Is there any way to create mongodb like _id strings without mongodb?

A very easy pseudo ObjectId generator in javascript:

const ObjectId = (m = Math, d = Date, h = 16, s = s => m.floor(s).toString(h)) =>
    s(d.now() / 1000) + ' '.repeat(h).replace(/./g, () => s(m.random() * h))

Use the official MongoDB BSON lib in the client
I have a browser client that generates ObjectIds. I wanted to make sure that I employ the same ObjectId algorithm in the client as the one used in the server. MongoDB has js-bson which can be used to accomplish that.

If you are using javascript with node.

npm install --save bson

Using require statement

var ObjectID = require('bson').ObjectID;

var id  = new ObjectID();
console.log(id.toString());

Using ES6 import statement

import { ObjectID } from 'bson';

const id  = new ObjectID();
console.log(id.toString());

The library also lets you import using good old script tags but I have not tried this.


Object IDs are usually generated by the client, so any MongoDB driver would have code to generate them.

If you're looking for JavaScript, here's some code from the MongoDB Node.js driver:

https://github.com/mongodb/js-bson/blob/1.0-branch/lib/bson/objectid.js

And another, simpler solution:

https://github.com/justaprogrammer/ObjectId.js