/mongo

start mongo

Primary LanguageGo

MongoDB

Установка

Качаем архив с официального сайта


	https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu-tarball/

Распаковываем архив

	
	tar -zxvf mongodb-linux-*-4.4.1.tgz

Настройка директории с базой данных

	sudo mkdir -p /var/lib/mongo
	sudo chown `whoami` /var/lib/mongo

Настройка директории с логами

	sudo mkdir -p /var/log/mongodb
	sudo chown `whoami` /var/log/mongodb

Запуск серввера

	mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log

Запуск оболочки


	./bin/mongo

Работа

Создание и начало работы с db

	> use tutorial
	switched to db tutorial

Вставка записи

	
	> db.users.insert(
		{
			"name": "Ivan"
		}
	)

	WriteResult({ "nInserted" : 1 })

Получение записей

	
	> db.users.find();
	{ "_id" : ObjectId("5fa944f360abed1bbd995c8d"), "name" : "Ivan" }

Запрос полей

	
	> db.users.find(
		{
			city: "Moscow"
		}, 
		{
			name: 1
		}
	);

Количество записей в коллекции

	> db.users.count();
	3

Обновление записей $set

	> db.users.update(
		{
			"name": "Ivan"
		}, 
		{
			$set:{
				country:"Russia"
			}
		}
	);
	> db.users.update(
		{
			"name": "Ivan"
		}, 
		{
			$set: {
				favourites: {
					movies: ["Casablanca"]
				}
			}
		}
	);

Удаление полей $unset

	> db.users.update(
		{
			"city": "Moscow"
		}, 
		{
			$unset: {
				city: 1
			}
		}
	)
	WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Добавление значений в список $addToSet/$push

	> db.users.update(
		{
			name: "A"
		}, 
		{
			$addToSet: {
				"favourites.movies": "Rambo"
			}
		}
	)

	> db.users.update(
		{
			name: "A"
		}, 
		{
			$push: {
				"favourites.movies":"Rambo"
			}
		}
	)

Удаление записей

	> db.users.remove(
		{
			name: "A"
		}
	)

Удаление коллекций

	> db.users.drop()

Добавление записей

	> 	for (var i = 0; i < 200000; i++) {
	...		db.numbers.save({num:i})
	... }

Поиск в диапазоне значений

	
	> db.numbers.find({$gt:199995, $lt:199999})

Простой Индекс

Профиль запроса

	> db.numbers.find(
		{
			num: {
				$gt: 199995
			}
		}
	).explain()

Создание индекса

	> db.numbers.ensureIndex({num:1})

Получение индексов над коллекцией

	> db.numbers.getIndexes()

Информация об объектах

Список баз данных и коллекций

	> show dbs
	> show collections

Детальная информация по базе данных или коллекции

	> db.stats()
	> db.users.stats()

Команды "под капотом"

Информация по базе данных

	> db.stats()
	> db.runCommand({dbstats:1})
	> db.$cmd.findOne({dbstats:1})

Информация по коллекции

	> db.users.stats()
	> db.runCommand({collstats:"users"})
	> db.$cmd.findOne({collstats:"users"})