Архив метки: mongodb

Как установить MongoDB в Ubuntu 20.04

MongoDB — это бесплатная база данных документов с открытым исходным кодом. Он принадлежит к семейству баз данных под названием NoSQL, которое отличается от традиционных баз данных SQL на основе таблиц, таких как MySQL и PostgreSQL.

В MongoDB данные хранятся в гибких документах, подобных JSON, где поля могут отличаться от документа к документу. Для этого не требуется предопределенная схема, а структура данных может изменяться со временем.

В этой статье описывается, как установить и настроить MongoDB Community Edition в Ubuntu 20.04.

Стандартные репозитории Ubuntu включают устаревшую версию MongoDB. Установить последнюю версию MongoDB в Ubuntu довольно просто. Мы включим репозиторий MongoDB, импортируем ключ GPG репозитория и установим сервер MongoDB.

 

Установка MongoDB в Ubuntu 20.04

Для установки MongoDB в Ubuntu выполните следующие действия от имени пользователя root или пользователя с правами sudo:

  1. Установите зависимости, необходимые для добавления нового репозитория через HTTPS:
    sudo apt update

    sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common

  2. Импортируйте ключ GPG репозитория и добавьте репозиторий MongoDB с помощью:
    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'

    На момент написания этой статьи последней версией MongoDB была версия 4.4. Чтобы установить другую версию, замените ее на предпочитаемую версию.

  3. После включения репозитория установите мета-пакет mongodb-org, набрав:
    sudo apt install mongodb-org

    В вашей системе будут установлены следующие пакеты:

    • mongodb-org-server — Демон mongod и соответствующие сценарии инициализации и конфигурации.
    • mongodb-org-mongos — Демон mongos.
    • mongodb-org-shell — Оболочка mongo, интерактивный интерфейс JavaScript для MongoDB. Он используется для выполнения административных задач из командной строки.
    • mongodb-org-tools — Содержит несколько инструментов MongoDB для импорта и экспорта данных, статистики, а также другие утилиты.

  4. Запустите демон MongoDB и включите его запуск при загрузке, набрав:
    sudo systemctl enable --now mongod

  5. Чтобы проверить, успешно ли завершилась установка, подключитесь к серверу базы данных MongoDB с помощью инструмента mongo и распечатайте статус подключения:
    mongo --eval 'db.runCommand({ connectionStatus: 1 })'

    Результат будет выглядеть примерно так:

    MongoDB shell version v4.4.0

    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb

    Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") }

    MongoDB server version: 4.4.0

    {

      "authInfo" : {

        "authenticatedUsers" : [ ],

        "authenticatedUserRoles" : [ ]

      },

      "ok" : 1

    }

    Значение 1 для поля ok указывает на успех.

 

Настройка MongoDB

Файл конфигурации MongoDB имеет имя mongod.confи находится в каталоге /etc. Файл в формате YAML.

В большинстве случаев достаточно настроек конфигурации по умолчанию. Однако для производственных сред мы рекомендуем раскомментировать раздел безопасности и включить авторизацию, как показано ниже:

sudo nano /etc/mongod.conf

/etc/mongod.conf

security:

  authorization: enabled


Параметр authorization включает управление доступом на основе ролей (RBAC), которое регулирует доступ пользователей к ресурсам и операциям базы данных. Если эта опция отключена, каждый пользователь будет иметь доступ ко всем базам данных и выполнять любые действия.

При редактировании файла конфигурации MongoDB перезапустите службу mongod, чтобы изменения вступили в силу:

sudo systemctl restart mongod

 

Чтобы найти дополнительную информацию о параметрах конфигурации, доступных в MongoDB 4.4, посетите страницу документации по параметрам файла конфигурации.

 

Создание администратора MongoDB

Если вы включили аутентификацию MongoDB, вам необходимо создать пользователя с правами администратора, который сможет получить доступ к экземпляру MongoDB и управлять им.

Доступ к оболочке mongo:

mongo

 

Изнутри оболочки MongoDB введите следующую команду для подключения к базе данных admin:

use admin


switched to db admin


 

Выполните следующую команду, чтобы создать нового пользователя с именем mongoAdmin, паролем changeMe и ролью userAdminAnyDatabase:

db.createUser(

  {

    user: "mongoAdmin",

    pwd: "changeMe",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)


Successfully added user: {

	"user" : "mongoAdmin",

	"roles" : [

		{

			"role" : "userAdminAnyDatabase",

			"db" : "admin"

		}

	]

}


Не забудьте установить более надежный пароль. Вы можете назвать административного пользователя MongoDB как хотите.

После этого выйдите из оболочки mongo с помощью:

quit()


 

Чтобы проверить изменения, войдите в оболочку mongo, используя ранее созданного администратора:

mongo -u mongoAdmin -p --authenticationDatabase admin

use admin


switched to db admin


 

Запустите, show users и вы должны увидеть информацию о вновь созданном пользователе:

show users


{

	"_id" : "admin.mongoAdmin",

	"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),

	"user" : "mongoAdmin",

	"db" : "admin",

	"roles" : [

		{

			"role" : "userAdminAnyDatabase",

			"db" : "admin"

		}

	],

	"mechanisms" : [

		"SCRAM-SHA-1",

		"SCRAM-SHA-256"

	]

}


 

Вы также можете попытаться получить доступ к оболочке mongo без каких-либо аргументов (просто введите mongo) и посмотрите, можете ли вы перечислить пользователей, используя те же команды, что и выше.

 

Вывод

Мы показали вам, как установить и настроить MongoDB в Ubuntu 20.04. Для получения дополнительной информации по этой теме посетите руководство MongoDB.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.



2020-08-10T15:27:24
MongoDB

Motor 0.5

Мы строили-строили и наконец построили.

Motor 0.5 (асинхронный драйвер для MongoDB) доехал до релиза.

Новая версия работает с asyncio.
Всем рекомендую

Автор: Andrew Svetlov

MongoDB базовые функции под python ( pymongo )

MongoDB — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц.

# coding: utf8

import pymongo

from pymongo import Connection
connection = Connection()

# Удалить БД, если она существует
connection.drop_database("test_database")

# Выбираем БД
db = connection.test_database
# либо: db = connection["test_database"]

# Удалить коллекцию
db.drop_collection('users')

# Добавление документов в колекцию 'users'
db.users.save( { 'name':'user 1', 'level':1 } )
db.users.save( { 'name':'user 2', 'level':2 } )
db.users.insert( { 'name':'user 3', 'level':3 } )

# Полное имя колекции
print db.users.full_name

# Получить все документы
for user in db.users.find():
print user

# Выбрать конкретные атрибуты
users = db.users.find({},{ 'login':1, 'name':1 })

# Получить один документ по условию
user = db.users.find_one({'name':'user 1'})

# Получить/установить значение
print user['level']
user['level'] = 7

# Сохранить документ
db.users.save(user)

# Удалить документ
db.users.remove(user)

# Установить значение в документе
db.users.update({ 'name':'user 2' }, { "$set": { 'level':5 } })

# Кол-во документов
print 'Count',db.users.count()
print 'Count lvl=2',db.users.find({'level':2}).count()

# Сортировка
for user in db.users.find().sort('level'):
print user
# в обратном порядке: .sort('level',pymongo.DESCENDING)
# Сортировка по нескольким атрибутам
db.users.find({}).sort( [('status',1),('level',-< span class="mi">1)] )

# Ограничение выборки, пропустить один документ и выбрать не более двух
for user in db.users.find().skip(1).limit(2):
print user

# Условия
for user in db.users.find().where('this.name == "user 2" || this.level>3'):
print user

# Выбрать неповторяющиеся записи
for user in db.users.distinct('level'):
print user

# Поиск регулярным выражением
import re
regex = re.compile('^us', re.I | re.U)
result = db.collection.find({ 'name':regex })

Автор: D1VER
Дата публикации: 2013-12-16T05:15:00.002-08:00

PHP MongoDB — получаем _id только что созданной записи (MongoID)

Ситуация: мы хотим получить _id только что созданной нами записи. То есть, например, мы создали юзера и хотим знать айдишник, который MongoDB присвоила ему. Делается это очень просто:
Добавляем элемент:

$x = array(‘foo’ => ‘bar’);
$c->insert($x); 

Проверяем внутренности $x:

var_dump($x);
array(2) {
  [«_id»]=>
  object(MongoId)#2 (0) {
  }
  [«foo»]
  string(7) «bar» 

 

Таким образом, для того, чтобы узнать _id, достаточно вывести $x[‘_id’]

Автор: AlexWinner