0.2.8 • Published 10 years ago

mongo-json-schema v0.2.8

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

#mongo-json-schema

This is a library for validating objects against a jsonSchema before inserting into (and after retrieving from) mongo.

Creating a schema object

var Schema = require('mongo-json-schema');
var schema = Schema({
  nested: {
    type: 'object',
    properties: {
      sub: {
        type: "objectid"
      }
    }
  },
  count: {
    type: "number",
    required: false
  },
  participants: {
    type: "array",
    items: {
      type: "objectid",
    }
  }
});
  

Validating an input object

schema.validate({
  _id '52f044dee2896a8264d7ec2f',
  nested: {
      sub: '52f044dee2896a8264d7ec2f'
  }
})
// throws errors if its not valid!

Getting a standard jsonSchema

schema.toJsonSchema();

returns:

{
  {
    type: 'object',
    properties: {
      _id: {
        type: "string",
        pattern: "^[a-fA-F0-9]{24}$",
        required: true
      },
      nested: {
        type: 'object',
        properties: {
          sub: {
            type: "string",
            pattern: "^[a-fA-F0-9]{24}$",
          }
        }
      },
      count: {
        type: "number",
        required: false
      },
      participants: {
        type: "array",
        items: {
          type: "string",
          pattern: "^[a-fA-F0-9]{24}$"
        }
      }
    }
  }
}

###getting an object with strings for ids

  schema.idsToStrings({
    _id: ObjectID('52f044dee2896a8264d7ec2f'),
    nested: {
      sub: ObjectID('52f044dee2896a8264d7ec2f'),
    },
    count: 42,
    participants: [ObjectID('52f044dee2896a8264d7ec2f'),ObjectID('52f044dee2896a8264d7ec2f')]
  });

returns:

{
  _id: '52f044dee2896a8264d7ec2f',
  nested: {
    sub: '52f044dee2896a8264d7ec2f',
  },
  count: 42,
  participants: ['52f044dee2896a8264d7ec2f','52f044dee2896a8264d7ec2f']
}

###getting an object with ObjectIDs for ids

schema.stringsToIds({
  _id: '52f044dee2896a8264d7ec2f',
  nested: {
    sub: '52f044dee2896a8264d7ec2f',
  },
  count: 42,
  participants: ['52f044dee2896a8264d7ec2f','52f044dee2896a8264d7ec2f']
});

returns:

{
  _id: ObjectID('52f044dee2896a8264d7ec2f'),
  nested: {
    sub: ObjectID('52f044dee2896a8264d7ec2f'),
  },
  count: 42,
  participants: [ObjectID('52f044dee2896a8264d7ec2f'),ObjectID('52f044dee2896a8264d7ec2f')]
}
0.2.8

10 years ago

0.2.7

10 years ago

0.2.6

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago