MongoDB Schema Analysis
Last updated a year ago by lrlna .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @mongodb-rust/wasm-schema-parser 
SYNC missed versions from official npm registry.


crates.io version build status downloads docs.rs docs

Infer a probabilistic schema for a MongoDB collection. This library is meant to be used in Rust or as Web Assembly module in JavaScript.

Usage: in Rust

use SchemaParser

pub fn main () {
  let mut file = fs::read_to_string("examples/fanclub.json").unwrap();
  let file: Vec<&str> = file.split("\n").collect();
  let schema_parser = SchemaParser::new();
  for json in file {
  let result = schema_parser.flush();
  println!("{:?}", result);

Rust API:

schema_parser = SchemaParser::new() -> Self

Creates a new SchemaParser instance.

schema_parser.write_bson(doc: Document) -> Result((), failure::Error)

Start populating instantiated schema_parser with Bson OrderedDocument. This should be called for each document you add:

use bson::{doc, bson};
let schema_parser = SchemaParser::new()
schema_parser.write_bson(doc! {"name": "Nori", "type": "Norwegian Forest Cat"});
schema_parser.write_bson(doc! {"name": "Rey", "type": "Viszla"});

schema_parser.write_json(json: &str) -> Result((), failure::Error)

Start populating instantiated schema_parser with a string slice. This should also be called individually for each document:

let schema_parser = SchemaParser::new()
schema_parser.write_json(r#"{"name": "Chashu", "type": "Norwegian Forest Cat"}"#);
schema_parser.write_bson(r#"{"name": "Rey", "type": "Viszla"}"#);

schema_parser.flush() -> SchemaParser

Internally this finalizes the output schema with missing fields, duplicates and probability calculations. SchemaParser is ready to be used after this step.

schema_parser.to_json() -> Result(String, failure::Error)

Returns a serde serialized version of the resulting struct. Before using .to_json(), a .flush() should be called to finalize schema.

Usage: in JavaScript

Make sure your environment is setup for WebAssembly usage. Check out CONTRIBUTING.md for more detailed instructions.

var schemaWasm = import('@mongodb-rust/wasm-schema-parser')

schemaWasm.then(module => {
  var schemaParser = new module.SchemaParser()
  try {
    schemaParser.writeJson('{"name": "Chashu", "type": "Norwegian Forest Cat"}')
  } catch (e) {
    throw new Error("schema-parser: Could not write Json", e)
  var result = schemaParser.toObject()
.catch(e => console.error('Cannot load @mongodb-rust/wasm-schema-parser', e))

JavaScript API:

schemaParser = new SchemaParser()

Creates a new SchemaParser instance.


Writes a document in raw BSON buffer form to Schema Parser. This buffer can be obtained from MongoDB by passing the raw flag to node driver.


Writes a document in a form of json string to SchemaParser.

schema = schemaParser.toJson()

Returns parsed schema in json form.

schema = schemaParser.toObject()

Returns parsed schema as a JavaScript Object. Eliminates the need to call JSON.parse() on a JSON string.


$ cargo add mongodb-schema-parser 



Current Tags

  • 0.5.0                                ...           latest (a year ago)

6 Versions

  • 0.5.0                                ...           a year ago
  • 0.4.2                                ...           a year ago
  • 0.4.1                                ...           a year ago
  • 0.4.0                                ...           2 years ago
  • 0.3.0                                ...           2 years ago
  • 0.2.0                                ...           2 years ago
Today 0
This Week 0
This Month 2
Last Day 0
Last Week 0
Last Month 7
Dependencies (0)
Dev Dependencies (0)

Copyright 2014 - 2017 © taobao.org |