MongoDB: Difference between revisions
From charlesreid1
| Line 108: | Line 108: | ||
third party APIs and libraries too, so there | third party APIs and libraries too, so there | ||
are multiple options. | are multiple options. | ||
=Basic CRUD Operations= | |||
MongoDB performs CRUD (create, read, update, delete) transactions/operations on the data that it stores. | |||
==Create (Insert)== | |||
To insert documents into a collection: | |||
* <code>db.collection.insertOne()</code> | |||
* <code>db.collection.insertMany()</code> | |||
Example: <code>db.users.insertOne({name:"Sue", age:26})</code> | |||
==Read (Query)== | |||
To read documents from a collection, | |||
use the find function: | |||
* <code>db.collection.find()</code> | |||
Example: <code>db.users.find({age:{$gt:18}})</code> | |||
==Update== | |||
To update documents in a collection: | |||
* <code>db.collection.updateOne()</code> | |||
* <code>db.collection.updateMany()</code> | |||
* <code>db.collection.replaceOne()</code> | |||
Example: <code>db.users.updateMany( {age:{$lt:18}, $set: {status: "reject"}} )</code> | |||
==Delete== | |||
Delete documents one at a time or en masse: | |||
* <code>db.collection.deleteOne()</code> | |||
* <code>db.collection.deleteMany()</code> | |||
=Scripts= | =Scripts= | ||
Revision as of 00:09, 31 January 2018
Setting Up
Installing
Debian/Ubuntu
MongoDB provides instructions for installing on Debian/Ubuntu. The short version: don't do apt-get install mongodb.
Here's what you do:
- Add the mongodb aptitude repositories to your aptitude
- Update your aptitude
- Install a mongodb package from mongodb.org
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list sudo apt-get update sudo apt-get install -y mongodb-org
These assume you have ubuntu xenial, see link [1] for other LTS releases.
Homebrew
Was able to install this ok with Homebrew: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/#install-mongodb-community-edition-with-homebrew
brew update brew install mongodb
or to install the development version:
brew update brew install mongodb --devel
Configuring
Link to documentation page on config options: https://docs.mongodb.com/manual/reference/configuration-options/
To start mongodb with a specified config file, use the --config or -f options:
mongod --config /etc/mongod.conf mongod -f /etc/mongod.conf
Core mongodb config sections:
- systemLog
- net
systemLog
# default: systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true
can also set verbosity (0-5):
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
verbosity: 2
logRotate: rename
If using logrotate util, set logRotate: reopen
Can further customize log behavior for specific components (access, commands, etc.)
net
net:
port: 27017
bindIp: 10.0.0.1
ipv6: True
There are also several options for SSL. Those go into an ssl subsection of the net section of the config file.
Starting
To start the mongodb service, use the mongod service:
sudo service mongod start
Selecting an Interface
The first thing you have to decide before interacting with the database is how you want to interact.
The mongodb shell is a javascript shell that can be used from a command line on the mongodb server.
Mongodb also has python language bindings. there are multiple non-mongo-provided third party APIs and libraries too, so there are multiple options.
Basic CRUD Operations
MongoDB performs CRUD (create, read, update, delete) transactions/operations on the data that it stores.
Create (Insert)
To insert documents into a collection:
db.collection.insertOne()db.collection.insertMany()
Example: db.users.insertOne({name:"Sue", age:26})
Read (Query)
To read documents from a collection, use the find function:
db.collection.find()
Example: db.users.find({age:{$gt:18}})
Update
To update documents in a collection:
db.collection.updateOne()db.collection.updateMany()db.collection.replaceOne()
Example: db.users.updateMany( {age:{$lt:18}, $set: {status: "reject"}} )
Delete
Delete documents one at a time or en masse:
db.collection.deleteOne()db.collection.deleteMany()
Scripts
Repository with scripts, code, notes, etc. is here: https://charlesreid1.com:3000/data/mongodb
Config: https://docs.mongodb.com/manual/reference/configuration-options/
References
pymodm: https://pymodm.readthedocs.io/en/latest/getting-started.html
Database design patterns: https://docs.mongodb.com/manual/applications/data-models/
Cheat sheet: https://blog.codecentric.de/files/2012/12/MongoDB-CheatSheet-v1_0.pdf