mongo-uuid

2.0.0 • Public • Published

Mongo UUID

When saving a UUID in MongoDB, you probably want to save the binary data in their native format. This helper is meant to ease that.

const m = require('mongodb') // "mongodb-core" or "bson" work as well
const u = require('mongo-uuid')

const uuid = (i) => u(m.Binary, i)

const id = uuid()
// -> Binary

console.log(u.stringify(id))
// -> fa4aab39-bdd8-406c-9813-6206433912e9

uuid('fa4aab39-bdd8-406c-9813-6206433912e9')
// -> Binary

API

Binary should be the Binary constructor from the BSON package.

Create

u.create(Binary)
u(Binary)

Parse

u.parse(Binary, 'dcc090ea-a65b-4ea4-9d91-22310bdad8af')
u(Binary, 'dcc090ea-a65b-4ea4-9d91-22310bdad8af')

Parse might throw a ParseError. The error class is exposed as u.ParseError for recognizing and catching.

Stringify

u.stringify(uuid) // dcc090ea-a65b-4ea4-9d91-22310bdad8af

Is valid

Check if the input is a valid UUID string without throwing.

u.isValid('dcc090ea-a65b-4ea4-9d91-22310bdad8af') // true

Examples

const {join} = require('bluebird')
const {Binary, MongoClient} = require('mongodb')
const uuid = require('mongo-uuid')

const uuid = (i) => u(Binary, i)

const client = new MongoClient('mongodb://localhost:27017/myproject')
const db = client.db()

// Creating documents

const id = uuid()

const insert = db
	.collection('docs')
	.insertOne({
		_id: id,
	})
	.then(() => console.log('Inserted with ID', uuid.stringify(id)))

// Finding documents

const id = uuid('dcc090ea-a65b-4ea4-9d91-22310bdad8af')

join(insert, () =>
	db
		.collection('docs')
		.find({
			_id: id,
		})
		.limit(1)
		.next()
).then(console.log)

Readme

Keywords

none

Package Sidebar

Install

npm i mongo-uuid

Weekly Downloads

127

Version

2.0.0

License

MIT

Unpacked Size

6.44 kB

Total Files

5

Last publish

Collaborators

  • thomas-jensen