What is bson-objectid?
The bson-objectid npm package is a utility for generating and working with BSON ObjectIDs, which are commonly used as unique identifiers in MongoDB. This package allows you to create new ObjectIDs, convert them to strings, and parse them from strings.
What are bson-objectid's main functionalities?
Generate a new ObjectID
This feature allows you to generate a new BSON ObjectID. The generated ID is a 12-byte identifier that is unique and can be used as a primary key in MongoDB.
const ObjectId = require('bson-objectid');
const id = new ObjectId();
console.log(id.toString());
Convert ObjectID to string
This feature allows you to convert a BSON ObjectID to its string representation. This is useful for storing or transmitting the ID as a string.
const ObjectId = require('bson-objectid');
const id = new ObjectId();
const idString = id.toString();
console.log(idString);
Parse ObjectID from string
This feature allows you to parse a string representation of an ObjectID back into a BSON ObjectID. This is useful for converting IDs received as strings back into their original ObjectID format.
const ObjectId = require('bson-objectid');
const idString = '507f1f77bcf86cd799439011';
const id = ObjectId(idString);
console.log(id);
Other packages similar to bson-objectid
mongodb
The mongodb package is the official MongoDB driver for Node.js. It includes a comprehensive set of tools for interacting with MongoDB databases, including the ability to generate and work with ObjectIDs. Compared to bson-objectid, the mongodb package offers a broader range of database-related functionalities.
bson
The bson package is a standalone BSON library that provides tools for serializing and deserializing BSON data. It includes functionality for working with ObjectIDs, similar to bson-objectid. However, it also offers additional features for handling other BSON data types.
mongoose
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a higher-level abstraction for working with MongoDB, including schema definitions and validation. Mongoose also includes tools for generating and working with ObjectIDs, but it is more focused on providing a structured way to interact with MongoDB collections.
BSON ObjectID
This module allows you to create and parse ObjectID
s without a reference to the
mongodb or bson
modules.
The goal is to be 100% compatable with all bson's
public API implementation (found here: https://github.com/mongodb/js-bson/blob/main/src/objectid.ts).
Install
$ npm install bson-objectid
Usage
var ObjectID = require("bson-objectid");
console.log(ObjectID());
console.log(ObjectID("54495ad94c934721ede76d90"));
console.log(ObjectID(1414093117));
console.log(ObjectID([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ]));
console.log(ObjectID(new Buffer([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ])));
ObjectID()
ObjectID(time)
ObjectID(hexString)
ObjectID(idString)
ObjectID(array)
ObjectID(buffer)
Creates a new immutable ObjectID
instance based on the current system time.
Possible arguments:
time Constructs the instance based on the specified time (in seconds).
hexString Constructs the instance from a 24 character hex string.
idString Constructs the instance from a 12 byte string.
array Constructs the instance from an Array
of 24 bytes.
buffer Constructs the instance from a 24 byte Buffer
instance.
id
returns the 12 byte id string.
str
toHexString()
returns the ObjectID
represented as a 24 character hex string.
equals(other)
returns true if the ObjectID
s represent the same underlying value. Otherwise false.
getTimestamp()
returns the generation Date
(accurate up to the second) that this ObjectID
was generated.
ObjectID.createFromTime(time)
Creates an ObjectID from a time (in seconds) Number
, with the rest of the ObjectID
zeroed out. Used for comparisons or sorting the ObjectID.
ObjectID.createFromHexString(hexString)
Creates an ObjectID from a 24 character hex string.
ObjectID.isValid(hexString)
ObjectID.isValid(ObjectID)
Checks if a value is a valid ObjectID
or 24 character hex string.
THE NATIVE DOCUMENTATION ISN'T CLEAR ON THIS GUY!
See: http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html#objectid-isvalid
Test
mocha
or
npm test
License
Apache v2.0
See LICENSE file.
Special callout to @feross for the is-buffer code
used internally to avoid Buffer from being loaded in browserify environments.