Skip to content

Instantly share code, notes, and snippets.

@MagePsycho
Last active August 30, 2022 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MagePsycho/08389961e4bf0ba5797275d5ee40a635 to your computer and use it in GitHub Desktop.
Save MagePsycho/08389961e4bf0ba5797275d5ee40a635 to your computer and use it in GitHub Desktop.
MongoDb (Server, Client, PHP Extension) #mongo #mongodb

Install MongoDB

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org

# Start MongoDB
sudo systemctl start mongod

# For error: Failed to start mongod.service: Unit mongod.service not found.
# sudo systemctl daemon-reload

# Verify that MongoDB status
sudo systemctl status mongod

# Enable for bootstartup
sudo systemctl enable mongod

# Stop MongoDB process
sudo systemctl stop mongod

# Restart MongoDB process
sudo systemctl restart mongod

# Start a mongo shell
mongo

Uninstall MongoDB

# Stop MongoDB process
sudo service mongod stop

# Remove Mongodb packages
sudo apt-get purge mongo-tools*
sudo apt-get purge mongodb*
sudo apt-get purge mongodb-org*
sudo apt autoremove

# Remove Database and log files
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

REF

Install PHP Driver

sudo apt-get install php-pear
sudo pecl install mongodb
sudo bash -c 'echo "extension=mongodb.so" > /etc/php/7.4/mods-available/mongodb.ini'
sudo ln -s /etc/php/7.4/mods-available/mongodb.ini /etc/php/7.4/cli/conf.d/30-mongodb.ini
sudo service php7.4-fpm restart
php -m | grep mongo

REF - https://www.mongodb.com/docs/drivers/php/

Mongo DB Installation (Ubuntu)

Mongo Server [Not using this one]

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org=3.2.6 mongodb-org-server=3.2.6 mongodb-org-shell=3.2.6 mongodb-org-mongos=3.2.6 mongodb-org-tools=3.2.6
echo "MongoDB v3.2.6 installed successfully"

Above didn't work for me. [Not using this one] But the below instead:
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ This also not working

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongodb start
mongo
db.version()

WORKING SOLUTION

sudo rm /etc/apt/sources.list.d/mongodb*.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

sudo apt update
sudo apt install mongodb-org


# Enable the mongod service and start it up:
systemctl enable mongod.service
systemctl start mongod.service


# Check version
mongo --version

# Check the status
systemctl status mongod.service

In LOCALHOST, this one worked for me :) (But this will install 2.6.x version) [Not using this one]

sudo apt-get install --reinstall mongodb

Start & check

sudo service mongod start
netstat -tulpn | grep 27017
mongo
> db.version()

Mongo PHP Extension

sudo apt-get install php-pear
sudo pecl install mongodb

#sudo echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
sudo bash -c 'echo "extension=mongodb.so" > /etc/php/7.0/mods-available/mongodb.ini'
sudo ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini
sudo service php7.0-fpm restart
php -m | grep mongo

Mongo PHP Library

cd /var/www/magento2
composer require "mongodb/mongodb=^1.0.0"

Getting Started

mongo
db
# OR
show databases

use <database>
show tables
# OR
show collections

Quick Tip (CTV)

@todo find how to execute multiple mongo commands

For references:

TroubleShooting

Problem

ERROR: `phpize' failed Solution:

# phpize for PHP7 is provided by the package php7.0-dev in Ubuntu 16.04
sudo apt-get install php7.0-dev  

Problem

Failed to start mongodb.service: Unit mongodb.service is masked. Solution:

sudo systemctl unmask mongodb

Problem

Error: couldn't connect to server 127.0.0.1:27017

Solution:

sudo rm /var/lib/mongodb/mongod.lock
mongod –repair
sudo service mongodb start
mongo

Problem

For masking error

Solution:

sudo systemctl unmask mongodb

If you are getting undesired Mongodb version, make sure you have only one source list under: /etc/apt/sources.list.d/

To Uninstall

apt-get autoremove --purge mongodb-org*

Problem

GPG error: https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures couldn't be verified because the public key is not available

Use 4.0 instead of 3.2

sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'

Key Terms

  • collection (table)
  • document (row)

DELETE

# Delete all data
db.collection.deleteMany({})

COUNT

db.collection.count()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment