npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@petrocloud/sails-mongo

v0.12.6

Published

Mongo DB adapter for Sails.js

Downloads

22

Readme

sails-mongo

npm version

Sails.js/Waterline adapter for MongoDB.

Heads up

sails-mongo maps the logical id attribute to the required _id physical-layer mongo id. In the current version of sails-mongo, you should not sort by id.

Installation

Install from NPM.

$ npm install sails-mongo --save

Usage

Note: The following instructions are for apps using at least Sails v0.10.x, up through v0.12.x.

After installing this adapter as a dependency of your Sails app, make this particular Mongo database your default datastore by adding the following settings to the files in your config folder:

// config/connections.js
module.exports.connections = {

  localMongoDb: {
    adapter: 'sails-mongo',
    host: 'localhost', // defaults to `localhost` if omitted
    port: 27017, // defaults to 27017 if omitted
    user: 'username_here', // or omit if not relevant
    password: 'password_here', // or omit if not relevant
    database: 'database_name_here' // or omit if not relevant
  }

};
// config/models.js
module.exports.models = {
  'connection': 'localMongoDb'
};

For more information about configuring datastores in your Sails app, click here.

What about production?

In production, use config/env/production.js and/or environment variables.

For more about getting your Sails app ready for production, see Concepts > Deployment.

Bugs   NPM version

To report a bug, click here.

Help

If you have questions or need help, click here.

FAQ

What about MongoDB urls?

You can follow MongoDB URI Connection Settings specification on how to define a connection string URI.

Following there is an example on how to configure the connection to your MongoDB server using a URL. e.g.:

module.exports.connections = {

  localMongoDb: {
    adapter: 'sails-mongo',
    url: 'mongodb://heroku_12345678:[email protected]:29017/heroku_12345678'
  }
};

You could also use an environment variable, to ease your deployments, for example, to Heroku , as follows:

module.exports.connections = {

  localMongoDb: {
    adapter: 'sails-mongo',
    url: process.env.MONGODB_URI
  }
};

This would be useful if, for instance, your Heroku env variables looked like:

MONGODB_URI=mongodb://heroku_12345678:[email protected]:29017/heroku_12345678

It must be noted though, that if you provide a url configuration, then, database, user, password, host and port configuration options are ignored.

What about a MongoDB deployment that is part of a Replica Set?

For example:

MONGODB_URI=mongodb://mongodbserver01:27017,mongodbserver02:27017,mongodbserver03:27017/my-app-datatabase?replSet=my-replica-set-name&readPreference=nearest&slaveOk=true

The previous configuration will set three MongoDB servers, named mongodbserver01, mongodbserver02 and mongodbserver03, all using port 27017, connecting to the my-app-database and using my-replica-set-name as the replica set. It also sets the readPreference to nearest and allows slave connections, with slaveOk set to true

Legacy usage

####Using with Sails v0.9.x

Add the mongo config to the config/adapters.js file.

module.exports.adapters = {
  'default': 'mongo',

  mongo: {
    module: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    user: 'username',
    password: 'password',
    database: 'your mongo db name here',
    wlNext: {
      caseSensitive: false
    }
  }
};

Note: You can also use the old v0.8.x syntax as well, see next section for details.

Replication/Replica Set can be setup by adding the following options to the mongo object, with your own replica details specified:

replSet: {
  servers: [
    {
      host: 'secondary1.localhost',
      port: 27017 // Will override port from default config (optional)
    },
    {
      host: 'secondary2.localhost',
      port: 27017
    }
  ],
  options: {} // See http://mongodb.github.io/node-mongodb-native/api-generated/replset.html (optional)
}

Note: Replica set configuration is optional.

Using with Sails v0.8.x

module.exports.adapters = {
  'default': 'mongo',

  mongo: {
    module: 'sails-mongo',
    url: 'mongodb://USER:PASSWORD@HOST:PORT/DB'
  }
};

Don't forget that Mongo uses the ObjectId type for ids.

https://www.mongodb.com/blog/post/quick-start-nodejs--mongodb--how-to-implement-transactions

Contributing   Dependency Status   Build Status   Build status on Windows

Please observe the guidelines and conventions laid out in the Sails project contribution guide when opening issues or submitting pull requests.

NPM

Special thanks

Thanks so much to Ted Kulp (@tedkulp) and Robin Persson (@prssn) for building the first version of this adapter back in 2013. Since then, it has evolved into a core adapter within the framework.

License

MIT

© 2013 Ted Kulp, Robin Persson, Cody Stoltman, Mike McNeil, Balderdash Design Co. © 2014 Balderdash Design Co. © 2015-2016 The Treeline Co.

Like the Sails framework, this adapter is free and open-source under the MIT License.