mongof
v2.3.11
Published
Sync MongoDB collections with JSON files.
Downloads
5
Maintainers
Readme
mongof
Sync MongoDB collections with JSON files.
:cloud: Installation
# Using npm
npm install --save mongof
# Using yarn
yarn add mongof
:clipboard: Example
// Dependencies
var Mongof = require("mongof")
, Faker = require("faker")
;
/**
* generateFakeDataArray
* Generates fake data for inserting it in the MongoDB database.
*
* @name generateFakeDataArray
* @function
* @return {Array} An array with fake data.
*/
function generateFakeDataArray() {
var docs = [];
for (var i = 0; i < 30; ++i) {
docs.push({
name: Faker.name.findName()
, email: Faker.internet.email()
, age: Faker.helpers.randomNumber(90)
});
}
return docs;
}
// Create database instance
var MyDatabase = new Mongof({
uri: "mongodb://localhost:27017/test"
, collections: [{
inputFile: __dirname + "/docs-in.json"
, outputFile: __dirname + "/docs-out.json"
, collection: "myCol"
, autoInit: true
}]
}, function (err, collections) {
// Handle error
if (err) { throw err; }
var MyAwesomeCollection = collections.myCol;
// Run a Mongo request
MyAwesomeCollection.find({}).toArray(function (err, docs) {
// Handle error
if (err) { throw err; }
// Output
console.log("Documents: ", docs);
// Insert
MyAwesomeCollection.insert(generateFakeDataArray(), function (err, docs) {
// Handle error
if (err) { throw err; }
console.log("Successfully inserted a new document: ", docs);
debugger
console.log("Check out the content of the following file: ", MyAwesomeCollection._options.outputFile);
// Close database
MyAwesomeCollection.database.close();
});
});
});
:question: Get Help
There are few ways to get help:
- Please post questions on Stack Overflow. You can open issues with questions, as long you add a link to your Stack Overflow question.
- For bug reports and feature requests, open issues. :bug:
- For direct and quick help, you can use Codementor. :rocket:
:memo: Documentation
Mongof(options, callback)
Creates a new instance of Mongof.
Params
- Object
options
: An object containing the following properties: collections
(Array): An array of objects with the needed fields for initing the collections that should be inited (default:[]
).ignore_sync_for
(Array): An array with Mongo collection method names for that sync should be diabled (default:[]
).ignore_callback_for
(array): An array with Mongo collection method names for that callback should be diabled (default:["find", "findOne"]
).uri
(String): The databse uri.db
(String): The databse name. If provided, theuri
field will be overriden, with thelocalhost:27017
Mongo databse uri.- Function
callback
: The callback function. Called witherr
,collections
anddata
.collections
is an object like this:{ "collectionName": <collectionObject> }
<collectionObject>
is an object containing all Mongo collection methods.
Return
- EventEmitter The instance of Mongof object.
addInCache(uri, dbObj, colName, colObj)
Cache database and collection in the internal cache.
Params
- String
uri
: The Mongo database URI string. - Database
dbObj
: The database object. - String
colName
: The collection name (optional). - Collection
colObj
: The collection object (optional).
Return
- Mongof The
Mongof
instance.
getDatabase(uri, callback)
Returns (via callback) a database object from cache or fetched via Mongo functions.
Params
- String
uri
: The Mongo database URI string - Function
callback
: The callback function
Return
- Mongof The
Mongof
instance.
getCollection(dbUri, collection, callback)
Returns (via callback) the collection object from cache
Params
- String
dbUri
: The Mongo database URI string - String
collection
: Collection name - Function
callback
: The callback function
Return
- Mongof The
Mongof
instance.
initCollection(options, callback)
Inits the collection and returns the collection instance.
Params
- Object
options
: An object containing the following properties: inputFile
(String): The path to the input file.outputFile
(String): The path to the output file.collection
(String): The collection that should be synced.outFields
(String): An object with fields that should be exported/ignored on stringify (default:{_id: 0}
).autoInit
(Boolean): Iftrue
, the collection will be inited with input data.- Function
callback
: The callback function
Return
- EventEmitter The collection object.
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.
:sparkling_heart: Support my projects
I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).
However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:
Starring and sharing the projects you like :rocket:
—I love books! I will remember you after years if you buy me one. :grin: :book:
—You can make one-time donations via PayPal. I'll probably buy a ~~coffee~~ tea. :tea:
—Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone).
Bitcoin—You can send me bitcoins at this address (or scanning the code below):
1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6
Thanks! :heart: