Coder Social home page Coder Social logo

js-bson's Introduction

BSON parser

If you don't yet know what BSON actually is, read the spec.

This package can be used to serialize JSON documents into the BSON format or the other way around. If you want to use it within the browser, give browserify a try (it will help you add this package to your bundle). The current build is located in the browser_build/bson.js file.

A simple example of how to use BSON in the browser:

<script src="./browser_build/bson.js"></script>

<script>
  function start() {
    var BSON = bson().BSON
    var Long = bson().Long

    var doc = { long: Long.fromNumber(100) }

    // Serialize a document
    var data = BSON.serialize(doc, false, true, false)
    // De serialize it again
    var doc_2 = BSON.deserialize(data)
  }
</script>

A simple example of how to use BSON in node.js:

var bson = require('bson')
var BSON = new bson.BSONPure.BSON()
var Long = bson.BSONPure.Long

var doc = { long: Long.fromNumber(100) }

// Serialize a document
var data = BSON.serialize(doc, false, true, false)
console.log('data:', data)

// Deserialize the resulting Buffer
var doc_2 = BSON.deserialize(data)
console.log('doc_2:', doc_2)

API

The API consists of two simple methods to serialize/deserialize objects to/from BSON format:

Installation

npm install bson

API

BSON serialization and deserialiation

new bson.BSONPure.BSON() - Creates a new BSON seralizer/deserializer you can use to serialize and deserialize BSON.

  • BSON.serialize(object, checkKeys, asBuffer, serializeFunctions)

    • @param {Object} object the Javascript object to serialize.
    • @param {Boolean} checkKeys the serializer will check if keys are valid.
    • @param {Boolean} asBuffer return the serialized object as a Buffer object (ignore).
    • @param {Boolean} serializeFunctions serialize the javascript functions (default:false)
    • @return {TypedArray/Array} returns a TypedArray or Array depending on what your browser supports
  • BSON.deserialize(buffer, options, isArray)

    • Options
      • evalFunctions {Boolean, default:false}, evaluate functions in the BSON document scoped to the object deserialized.
      • cacheFunctions {Boolean, default:false}, cache evaluated functions for reuse.
      • cacheFunctionsCrc32 {Boolean, default:false}, use a crc32 code for caching, otherwise use the string of the function.
      • promoteBuffers {Boolean, default:false}, deserialize Binary data directly into node.js Buffer object.
    • @param {TypedArray/Array} a TypedArray/Array containing the BSON data
    • @param {Object} [options] additional options used for the deserialization.
    • @param {Boolean} [isArray] ignore used for recursive parsing.
    • @return {Object} returns the deserialized Javascript Object.

ObjectId

bson.ObjectId.isValid(id) - Returns true if id is a valid number or hexadecimal string representing an ObjectId. bson.ObjectId.createFromHexString(hexString) - Returns the ObjectId the hexString represents. bson.ObjectId.createFromTime(time) - Returns an ObjectId containing the passed time.

  • time - A Unix timestamp (number of seconds since the epoch).

var objectId = new bson.ObjectId(id) - Creates a new ObjectId.

  • id - Must either be a 24-character hex string or a 12 byte binary string.

objectId.toJSON() objectId.toString() objectId.toHexString() - Returns a hexadecimal string representation of the ObjectId.

objectId.equals(otherObjectId) - Returns true if the ObjectIds are the same, false otherwise.

objectId.getTimestamp() - Returns a Date object containing the time the objectId was created for.

objectId.getTimestamp() - Returns a Date object containing the time the objectId contains.

js-bson's People

Contributors

aheckmann avatar christkv avatar clayzermk1 avatar defunctzombie avatar duralog avatar forbeslindesay avatar fresheneesz avatar gilles-poirot avatar jefff avatar jkresner avatar jonathanong avatar jstewmon avatar kangas avatar kkoopa avatar kylepdavis avatar leo avatar mandyscott avatar moredip avatar msmiley avatar nailgun avatar pdehaan avatar pmcnr-hx avatar rahatarmanahmed avatar rayman avatar seriousben avatar stephen-fanfair avatar upcu avatar vkarpov15 avatar vodkabears avatar williamkapke avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.