4.2.0 • Published 3 years ago

mongo-mock v4.2.0

Weekly downloads
7,816
License
MIT
Repository
github
Last release
3 years ago

mongo-mock     Build Status

This is an in-memory 'pretend' mongodb. The goal is to make the interface compatible with the real mongodb module so they are interchangeable.

There are a TON of features for mongo and I can't write them all myself- so pull requests are encouraged! My initial goal was to provide basic CRUD operations to enable this to work as a throw-something-together tool.

Why?

Maybe you don't want to (or can't) connect to a MongoDB instance for your tests? Maybe you want to throw together a quick example app?

Demo code

var mongodb = require('mongo-mock');
mongodb.max_delay = 0;//you can choose to NOT pretend to be async (default is 400ms)
var MongoClient = mongodb.MongoClient;
MongoClient.persist="mongo.js";//persist the data to disk

// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server
MongoClient.connect(url, {}, function(err, client) {
  var db = client.db();
  // Get the documents collection
  var collection = db.collection('documents');
  // Insert some documents
  var docs = [ {a : 1}, {a : 2}, {a : 3}];
  collection.insertMany(docs, function(err, result) {
    console.log('inserted',result);

    collection.updateOne({ a : 2 }, { $set: { b : 1 } }, function(err, result) {
      console.log('updated',result);

      collection.findOne({a:2}, {b:1}, function(err, doc) {
        console.log('foundOne', doc);

        collection.removeOne({ a : 3 }, function(err, result) {
          console.log('removed',result);

          collection.find({}, {_id:-1}).toArray(function(err, docs) {
            console.log('found',docs);
            
            function cleanup(){            
              var state = collection.toJSON();
              // Do whatever you want. It's just an Array of Objects.
              state.documents.push({a : 2});
              
              // truncate
              state.documents.length = 0;
              
              // closing connection
              db.close();
            }
            
            setTimeout(cleanup, 1000);
          });
        });
      });
    });
  });
});

Install

Well, you know.. the usual:

$ npm install mongo-mock
4.2.0

3 years ago

4.1.0

4 years ago

4.0.0

5 years ago

3.9.1

5 years ago

3.9.0

5 years ago

3.8.1

6 years ago

3.8.0

6 years ago

3.7.1

6 years ago

3.6.0

6 years ago

3.5.0

6 years ago

3.4.0

6 years ago

3.3.2

7 years ago

3.3.1

7 years ago

3.3.0

7 years ago

3.1.0

7 years ago

3.0.0

7 years ago

2.9.0

7 years ago

2.8.0

8 years ago

2.7.0

8 years ago

2.6.0

8 years ago

2.5.0

8 years ago

2.4.1

8 years ago

2.4.0

8 years ago

2.3.0

8 years ago

2.2.0

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.3.0

9 years ago

1.2.8

10 years ago

1.2.7

10 years ago

1.2.6

10 years ago

1.2.5

10 years ago

1.2.4

10 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago