Изучаем mongodb: быстрый старт

Run MongoDB Community Edition from the Command Interpreter¶

Open a Windows command prompt/interpreter () as an Administrator.

Important

You must open the command interpreter as an
Administrator.

1

Create the database directory.

Create the where MongoDB stores data.
MongoDB’s default data directory path is the absolute path
on the drive from which you start MongoDB.

From the Command Interpreter, create the data directory:

copy

cd C:\
md "\data\db"

2

Start your MongoDB database.

To start MongoDB, invoke .

copy

"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" --dbpath="c:\data\db"

The option points to your
database directory.

If the MongoDB database server is running correctly, the
Command Interpreter displays:

copy

initandlisten waiting for connections

Important

Depending on the
Windows Defender Firewall
settings on your Windows host, Windows may display a
Security Alert dialog box about blocking
“some features” of
from communicating on networks. To remedy this issue:

  1. Click Private Networks, such as my home or work
    network.
  2. Click Allow access.

To learn more about security and MongoDB, see the
Security Documentation.

Stop a Replica Set¶

Procedure

If the is the in a , the shutdown process for this instance has
the following steps:

  1. Check how up-to-date the are.
  2. If no secondary is within 10 seconds of the primary,
    will return a message that it will not shut down.
    You can pass the command a
    argument to wait for a secondary to catch up.
  3. If there is a secondary within 10 seconds of the primary, the primary
    will step down and wait for the secondary to catch up.
  4. After 60 seconds or once the secondary has caught up, the primary
    will shut down.

Force Replica Set Shutdown

If there is no up-to-date secondary and you want the primary to shut
down, issue the command with the
argument, as in the following shell operation:

copy

db.adminCommand({shutdown  1, force  true})

To keep checking the secondaries for a specified number of seconds if
none are immediately up-to-date, issue with the
argument. MongoDB will keep checking the secondaries for
the specified number of seconds if none are immediately up-to-date. If
any of the secondaries catch up within the allotted time, the primary
will shut down. If no secondaries catch up, it will not shut down.

The following command issues with
set to :

copy

db.adminCommand({shutdown  1, timeoutSecs  5})

Alternately you can use the argument with the
method:

copy

db.shutdownServer({timeoutSecs  5})

Почему не все так просто с MongoDB

В последние несколько лет MongoDB приобрела огромную популярность среди разработчиков. То и дело в интернете появляются всякие статьи, как очередной молодой популярный проект выкинул на свалку истории привычные РСУБД, взял в качестве основной базы данных MongoDB, выстроил инфраструктуру вокруг неё, и как все после этого стало прекрасно. Даже появляются новые фреймворки и библиотеки, которые строят свою архитектуру целиком на Mongo (Meteor.js например).
По долгу работы я примерно 3 года занимаюсь разработкой и поддержкой нескольких проектов, которые используют MongoDB в качестве основной БД, и в этой статье хочу рассказать, почему на мой взгляд с MongoDB далеко не все так просто, как написано в мануалах, и к чему вы должны быть готовы, если вдруг решите взять MongoDB в качестве основной БД в ваш новый модный стартап 🙂
Все что описано ниже можно воспроизвести с использованием библиотеки PyMongo для работы с MongoDB из языка программирования Python. Однако скорее всего с аналогичными ситуациями вы можете столкнуться и при использовании других библиотек для других языков программирования.

14 вещей, которые я хотел бы знать перед началом работы с MongoDB

Перевод

Основные моменты:

Крайне важно разработать схему несмотря на то, что в MongoDB она необязательна.
Аналогично, индексы должны соответствовать вашей схеме и шаблонами доступа. Избегайте использования больших объектов и больших массивов.
Будьте осторожны с настройками MongoDB, особенно если речь идет о безопасности и надежности.
В MongoDB нет оптимизатора запросов, поэтому вы должны быть осторожны при выполнении операций запроса.. Я очень давно работаю с базами данных, но только недавно открыл для себя MongoDB

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

Я очень давно работаю с базами данных, но только недавно открыл для себя MongoDB. Есть несколько вещей, которые я хотел бы знать перед началом работы с ней. Когда у человека уже есть опыт в определенной сфере, у него существуют предвзятые представления о том, что такое базы данных и что они делают. В надежде облегчить задачу понимания другим людям, представляю список распространенных ошибок.

Cursor¶

Name Description
Adds special wire protocol flags that modify the behavior of the query.’
Allows MongoDB to use temporary files on disk to store data exceeding the 100 megabyte system memory limit while processing a blocking sort operation.
Allows operations against a
sharded collection to return partial results, rather than an
error, if one or more queried shards are unavailable.
Controls the number of documents MongoDB will return to the client in a single network message.
Close a cursor and free associated server resources.
Returns if the cursor is closed.
Specifies the collation for the cursor returned by the .
Attaches a comment to the query to allow for traceability in the logs and the system.profile collection.
Modifies the cursor to return the number of documents in the result set rather than the documents themselves.
Reports on the query execution plan for a cursor.
Applies a JavaScript function for every document in a cursor.
Returns true if the cursor has documents and can be iterated.
Forces MongoDB to use a specific index for a query.
Returns if the cursor is closed and there are no objects remaining in the batch.
Computes the total number of documents in the cursor client-side by fetching and iterating the result set.
Constrains the size of a cursor’s result set.
Applies a function to each document in a cursor and collects the return values in an array.
Specifies an exclusive upper index bound for a cursor. For use with
Specifies a cumulative time limit in milliseconds for processing operations on a cursor.
Specifies an inclusive lower index bound for a cursor. For use with
Returns the next document in a cursor.
Instructs the server to avoid closing a cursor automatically after a period of inactivity.
Returns the number of documents left in the current cursor batch.
Configures the cursor to display results in an easy-to-read format.
Specifies a for a operation.
Specifies a to a cursor to control how the client directs queries to a .
Modifies the cursor to return index keys rather than the documents.
Adds an internal storage engine ID field to each document returned by the cursor.
Returns a count of the documents in the cursor after applying and methods.
Returns a cursor that begins returning results only after passing or skipping a number of documents.
Returns results ordered according to a sort specification.
Marks the cursor as tailable. Only valid for cursors over capped collections.
Returns an array that contains all documents returned by the cursor.

MongoDB от теории к практике. Руководство по установке кластера mongoDB

Из песочницы

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

  1. Вступление. Кратко о масштабировании
  2. Некоторые примеры развертки mongoDB и их описание
  3. Шардинг mongoDB

    Пункты 1 и 2 — теоретические, а номер 3 претендует на практическое руководство по поднятию кластера mongoDB и больше всего подойдет тем, кто столкнулся с этим в первый раз.

Query Plan Cache¶

Name Description
Returns an interface to access the query plan cache object and
associated PlanCache methods for a collection.
Clears all the cached query plans for a collection.
Accessible through the plan cache object of a specific collection,
i.e. .
Clears the cached query plans for the specified query shape.
Accessible through the plan cache object of a specific collection,
i.e.
Displays the methods available for a collection’s query plan cache.
Accessible through the plan cache object of a specific collection,
i.e. .

Returns the plan cache information for a collection. Accessible
through the plan cache object of a specific collection, i.e.
.

New in version 4.4.

Creating a MongoDB Database with Compass

The Databases tab in MongoDB Compass has a Create Database button.

In MongoDB Compass, you create a database and add its first collection at the same time:

  • Click Create Database to open the dialog

  • Enter the name of the database and its first collection

  • Click Create Database

Find out more

The next step is to insert one or more documents into your database.

Click on your database’s name to see the collection you created, then click on the collection’s name to see the Documents tab:

Click the Add Data button to insert one or more documents into your collection.

You can add JSON documents one at a time, or add multiple documents in an array by enclosing comma-separated JSON documents in square brackets, as shown in this example:

Click Insert to add the documents to your collection.

Upgrade Replica Sets¶

To upgrade a replica set, upgrade each member individually, starting with
the and finishing with the
. Plan the upgrade during a predefined maintenance window.

Note

Starting in MongoDB 4.0.7, change streams use a version 1
. MongoDB versions
earlier than 4.0.7 use resume tokens or BinData resume tokens.

When upgrading from MongoDB 4.0.0-4.0.6 to MongoDB 4.0.7 or later,
a client may try to resume change streams using the new
resume token when connected to a member that has not been updated
(i.e. only accepts token or BinData) and fail. In such cases, the
client must wait for the upgrade to complete before resuming change
streams.

Upgrade Secondaries

Upgrade each secondary separately as follows:

  1. Upgrade the secondary’s binary by following the
    instructions in .

  2. After upgrading a secondary, wait for the secondary to recover to
    the state before upgrading the next instance. To
    check the member’s state, issue in the
    shell.

    The secondary may briefly go into or .
    This is normal. Make sure to wait for the secondary to fully recover
    to before you continue the upgrade.

Additional Considerations¶

Localhost Binding by Default

By default, MongoDB launches with set to
, which binds to the localhost network interface. This
means that the can only accept connections from
clients that are running on the same machine. Remote clients will not be
able to connect to the , and the will
not be able to initialize a unless this value is set
to a valid network interface.

This value can be configured either:

  • in the MongoDB configuration file with , or
  • via the command-line argument

Warning

Before binding to a non-localhost (e.g. publicly accessible)
IP address, ensure you have secured your cluster from unauthorized
access. For a complete list of security recommendations, see
Security Checklist. At minimum, consider
and
hardening network infrastructure.

For more information on configuring , see
IP Binding.

Point Releases and

If you installed MongoDB with the Windows installer (), that
automatically upgrades within its (e.g. 4.0.1 to 4.0.2).

Upgrading a full release series (e.g. 4.0 to 4.2) requires a new
installation.

Add MongoDB binaries to the System PATH

All command-line examples in this tutorial are provided as absolute
paths to the MongoDB binaries. You can add to your System and then
omit the full path to the MongoDB binaries.

Run MongoDB Community Edition¶

ulimit Considerations

Most Unix-like operating systems limit the system resources that a
process may use. These limits may negatively impact MongoDB operation,
and should be adjusted. See UNIX ulimit Settings for the recommended
settings for your platform.

Note

Starting in MongoDB 4.4, a startup error is generated if the
value for number of open files is under .

Directories

By default, MongoDB instance stores:

  • its data files in
  • its log files in

If you installed via the package manager, these default directories are
created during the installation.

If you installed manually by downloading the tarballs, you can create
the directories using or depending on the user that will run MongoDB. (See your
linux man pages for information on and .)

By default, MongoDB runs using the user account. If you
change the user that runs the MongoDB process, you must also modify
the permission to the and
directories to give this user access to these directories.

To specify a different log file directory and data file directory, edit
the and settings in
the . Ensure that the user running MongoDB has
access to these directories.

Bulk Write Operation¶

Name Description
Initializes a operations builder for an ordered list of operations.
Initializes a operations builder for an unordered list of operations.
Bulk operations builder.
Executes a list of operations in bulk.
Specifies the query condition for an update or a remove operation.
Specifies the filters that determine which elements of an array to update for an or operation.
Specifies the for the query condition.
Specifies the index to use for the update/replace operation.
Adds a multiple document remove operation to a list of operations.
Adds a single document remove operation to a list of operations.
Adds a single document replacement operation to a list of operations.
Adds a single document update operation to a list of operations.
Adds a update operation to a list of operations.
Specifies for an update operation.
Returns an array of write operations executed in the operations object.
Adds an insert operation to a list of operations.
Returns a JSON document that contains the number of operations and batches in the operations object.
Returns the results as a string.

Установка MongoDB на Windows

Сперва качаем архив с MongoDB для win32 или win64.

Распаковываем скачанный архив и помещаем его, к примеру, на диск C, в каталог mongodb. Причём, проследите за тем, чтобы каталог bin был доступен по адресу .

Далее прописываем путь к папке bin в настройках нашей ОС, для того чтобы к .exe файлам данной папки мы могли достучаться из любого места. Итак, делаем правый клик на Компьютер — Свойства. В списке слева, выбираем “Дополнительные параметры системы”:

Далее, нажимаем на кнопку “Переменные среды”:

В открывшемся окне ищем системную переменную Path. Кликаем по ней дважды. В поле “значение переменной” переходим в самый конец, ставим знак “;” и вписываем путь к каталогу bin:

Отлично! Жмём “ок”… и переходим к следующему шагу.

Для начала, нам необходимо создать каталог, где будут храниться наши БД. К примеру, . Создаём эту папку.

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

echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg

Данная команда создаст специальный лог файл и настройки конфигурации для сервиса.

Далее создаём сервис:

mongod --config C:\mongodb\mongod.cfg --install

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

logpath=C:\mongodb\log\mongo.log
dbpath=C:\databases

Возвращаемся к командной строке и запускаем сервис MongoDB:

net start MongoDB

Для того чтобы проверить, будет ли сервис запускаться автоматически, нажимаем сочетание клавиш “windows+r”, пишем “services.msc”, нажимаем ОК.

В списке сервисов ищем MongoDB и, если его тип запуска не автоматический, то выставляем данный пункт, предварительно сделав правый клик, и выбрав, “свойства”.

Теперь, когда мы создали сервис, который будет запускать MongoDB при включении компьютера, нам не нужно будет делать это вручную.

Для проверки работы MongoDB открываем командную строку и пишем:

mongo

Нажимаем Enter. Далее можем работать с данной СУБД. К примеру, посмотрим, какие сейчас у нас есть базы:

show dbs

В ответе вы должны увидеть вот такую вот строку:

local   (empty)

Аутентификация REST API с помощью Spring Security и MongoDB

Перевод

Всем привет! Уходя на выходные делимся с вами статьей, которая была переведена в преддверии старта курса «Разработчик на Spring Framework».
В прошлых статьях мы создавали RESTful веб-сервис, теперь же мы поговорим о безопасности

Вступление

В предыдущем посте мы рассмотрели, как создать REST API с использованием инфраструктуры Java Spring Boot и MongoDB. API, однако, не требовал никакой аутентификации, а это значит, что он, вероятно, все еще не готов к использованию. Поэтому в этом руководстве будет рассказано, как использовать встроенную среду безопасности Spring для добавления уровня аутентификации в этот API.

Start MongoDB Community Edition from the Command Interpreter¶

Open a Windows command prompt/interpreter () as an Administrator.

Important

You must open the command interpreter as an
Administrator.

1

Create database directory.

Create the where MongoDB stores data.
MongoDB’s default data directory path is the absolute path
on the drive from which you start MongoDB.

From the Command Interpreter, create the data directories:

copy

cd C:\
md "\data\db"

2

Start your MongoDB database.

To start MongoDB, run .

copy

"C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --dbpath="c:\data\db"

The option points to your
database directory.

If the MongoDB database server is running correctly, the
Command Interpreter displays:

copy

initandlisten waiting for connections

Important

Depending on the
Windows Defender Firewall
settings on your Windows host, Windows may display a
Security Alert dialog box about blocking
“some features” of
from communicating on networks. To remedy this issue:

  1. Click Private Networks, such as my home or work
    network.
  2. Click Allow access.

To learn more about security and MongoDB, see the
Security Documentation.

Additional Considerations¶

Localhost Binding by Default

By default, MongoDB launches with set to
, which binds to the localhost network interface. This
means that the can only accept connections from
clients that are running on the same machine. Remote clients will not be
able to connect to the , and the will
not be able to initialize a unless this value is set
to a valid network interface.

This value can be configured either:

  • in the MongoDB configuration file with , or
  • via the command-line argument

Warning

Before binding to a non-localhost (e.g. publicly accessible)
IP address, ensure you have secured your cluster from unauthorized
access. For a complete list of security recommendations, see
Security Checklist. At minimum, consider
and
hardening network infrastructure.

For more information on configuring , see
IP Binding.

Point Releases and

If you installed MongoDB with the Windows installer (), the
automatically upgrades within its (e.g. 4.2.1 to 4.2.2).

Upgrading a full release series (e.g. 4.0 to 4.2) requires a new
installation.

Add MongoDB binaries to the System PATH

All command-line examples in this tutorial are provided as absolute paths to the MongoDB binaries. You can add to your System and then omit the full path to the MongoDB binaries.

Run MongoDB Community Edition as a Windows Service¶

Starting in version 4.0, you can install and configure MongoDB as a
Windows Service during the install, and the MongoDB service
is started upon successful installation. MongoDB is configured using
the configuration file .

Start MongoDB Community Edition as a Windows Service

To start/restart the MongoDB service, use the Services console:

  1. From the Services console, locate the MongoDB service.
  2. Right-click on the MongoDB service and click Start.

To begin using MongoDB, connect a shell
to the running MongoDB instance. To connect, open a Command
Interpreter with Administrative privileges and run:

copy

"C:\Program Files\MongoDB\Server\4.4\bin\mongo.exe"

For more information on connecting a
shell, such as to connect to a MongoDB instance running on a different
host and/or port, see The mongo Shell. For information on CRUD
(Create,Read,Update,Delete) operations, see:

  • Insert Documents
  • Query Documents
  • Update Documents
  • Delete Documents

Stop MongoDB Community Edition as a Windows Service

To stop/pause the MongoDB service, use the Services console:

  1. From the Services console, locate the MongoDB service.
  2. Right-click on the MongoDB service and click Stop (or Pause).

Start MongoDB Enterprise Edition from the Command Interpreter¶

1

Create database directory.

Create the where MongoDB stores data.
MongoDB’s default data directory path is the absolute path
on the drive from which you start MongoDB.

From the Command Interpreter, create the data directories:

copy

cd C:\
md "\data\db"

2

Start your MongoDB database.

To start MongoDB, run .

copy

"C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --dbpath="c:\data\db"

The option points to your
database directory.

If the MongoDB database server is running correctly, the
Command Interpreter displays:

copy

initandlisten waiting for connections

Important

Depending on the
Windows Defender Firewall
settings on your Windows host, Windows may display a
Security Alert dialog box about blocking
“some features” of
from communicating on networks. To remedy this issue:

  1. Click Private Networks, such as my home or work
    network.
  2. Click Allow access.

To learn more about security and MongoDB, see the
Security Documentation.

Install MongoDB Enterprise Edition¶

Follow these steps to install MongoDB Enterprise Edition using the
package manager.

1

Import the public key used by the package management system.

From a terminal, issue the following command to import the
MongoDB public GPG Key from https://www.mongodb.org/static/pgp/server-4.4.asc:

copy

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

The operation should respond with an .

However, if you receive an error indicating that is not
installed, you can:

  1. Install and its required libraries using the following command:

    copy

    sudo apt-get install gnupg
    
  2. Once installed, retry importing the key:

    copy

    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    

2

Create a file for MongoDB.

Click on the appropriate tab for your version of Ubuntu.

  • Ubuntu 20.04 (Focal)
  • Ubuntu 18.04 (Bionic)
  • Ubuntu 16.04 (Xenial)

The following instruction is for Ubuntu 20.04
(Focal).

Create the list file for Ubuntu 20.04 (Focal).

copy

echo "deb  http://repo.mongodb.com/apt/ubuntu focal/mongodb-enterprise/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list

The following instruction is for Ubuntu 18.04
(Bionic).

Create the list file for Ubuntu 18.04 (Bionic).

copy

echo "deb  http://repo.mongodb.com/apt/ubuntu bionic/mongodb-enterprise/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list

The following instruction is for Ubuntu 16.04
(Xenial).

Create the list file for Ubuntu 16.04 (Xenial).

copy

echo "deb  http://repo.mongodb.com/apt/ubuntu xenial/mongodb-enterprise/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list

3

Additional Considerations¶

Localhost Binding by Default

By default, MongoDB launches with set to
, which binds to the localhost network interface. This
means that the can only accept connections from
clients that are running on the same machine. Remote clients will not be
able to connect to the , and the will
not be able to initialize a unless this value is set
to a valid network interface.

This value can be configured either:

  • in the MongoDB configuration file with , or
  • via the command-line argument

Warning

Before binding to a non-localhost (e.g. publicly accessible)
IP address, ensure you have secured your cluster from unauthorized
access. For a complete list of security recommendations, see
Security Checklist. At minimum, consider
and
hardening network infrastructure.

For more information on configuring , see
IP Binding.

Point Releases and

If you installed MongoDB with the Windows installer (), the
automatically upgrades within the (e.g. 4.2.1 to 4.2.2).

Upgrading a full release series (e.g. 4.0 to 4.2) requires a new
installation.

Add MongoDB binaries to the System PATH

All command-line examples in this tutorial are provided as absolute
paths to the MongoDB binaries. You can add to your System and then
omit the full path to the MongoDB binaries.

Additional Considerations¶

Localhost Binding by Default

By default, MongoDB launches with set to
, which binds to the localhost network interface. This
means that the can only accept connections from
clients that are running on the same machine. Remote clients will not be
able to connect to the , and the will
not be able to initialize a unless this value is set
to a valid network interface.

This value can be configured either:

  • in the MongoDB configuration file with , or
  • via the command-line argument

Warning

Before binding to a non-localhost (e.g. publicly accessible)
IP address, ensure you have secured your cluster from unauthorized
access. For a complete list of security recommendations, see
Security Checklist. At minimum, consider
and
hardening network infrastructure.

For more information on configuring , see
IP Binding.

Point Releases and

If you installed MongoDB with the Windows installer (), the
automatically upgrades within the (e.g. 4.0.1 to 4.0.2).

Upgrading a full release series (e.g. 4.0 to 4.2) requires a new
installation.

Add MongoDB binaries to the System PATH

All command-line examples in this tutorial are provided as absolute
paths to the MongoDB binaries. You can add to your System and then
omit the full path to the MongoDB binaries.

Почему MongoDB

Между не табличными СУБД многие пользователи делают выбор в пользу MongoDB. Во-первых, данную систему можно установить практически на всех операционных системах (Windows, OSX, Linux). Во-вторых, проект до сих пор активно развивается и с завидной частотой команда разработчиков публикует обновления. Также мне кажется, что MongoDB предоставляет хорошую документацию для начинающих.

MongoDB лучше подходит в тех случаях, когда таблицы можно представить в виде объектов. По-моему, подобные системы лучше использовать при разработке приложений для мобильный устройств. В этом плане, Mongo предоставляет отдельные библиотеки, как для iOS, так и для Adndroid-а.

Ещё один весомый аргумент в пользу MongoDB: работать с данной системой можно на многих языках программирования, таких как C/C++, Python, PHP, Rubym Perl, .NET и даже Node.js.

MongoDB — это реальное решение, если вы хотите отступить от SQL и попробовать что-то новенькое.

Platform Support¶

  • MongoDB 3.4 introduces support for ARM64, PPC64LE, and s390x
    architectures. See to see the
    full platform support matrix.
  • Starting in version 3.4, MongoDB removes support for Red Hat Enterprise Linux 5.

For earlier MongoDB Enterprise versions that support Ubuntu 16.04
POWER/PPC64LE:

Due to a lock elision bug present in older versions
of the package on Ubuntu 16.04 for POWER, you must
upgrade the package to at least
before running MongoDB. Systems with older versions of the
package will experience database server crashes and
misbehavior due to random memory corruption, and are unsuitable
for production deployments of MongoDB

The following summarizes the supported architecture for the latest
version of MongoDB products:

Product x86_64/amd64 s390x POWER8 (little endian) ARMv8-A
MongoDB 3.4 MongoDB Enterprise only MongoDB Enterprise only
BI Connector  
Compass      
Spark Connector      
Ops Manager      
Automation Agent    
Monitoring Agent    
Backup Agent    

Manage and Maintain Windows Firewall Configurations¶

This section contains a number of basic operations for managing and
using . While you can use the GUI front ends to manage the
Windows Firewall, all core functionality is accessible is
accessible from .

Delete all Windows Firewall Rules

To delete the firewall rule allowing traffic:

copy

netsh advfirewall firewall delete rule name="Open mongod port 27017" protocol=tcp localport=27017

netsh advfirewall firewall delete rule name="Open mongod shard port 27018" protocol=tcp localport=27018

To return a list of all Windows Firewall rules:

copy

netsh advfirewall firewall show rule name=all

To reset the Windows Firewall rules:

copy

netsh advfirewall reset

Backup and Restore Windows Firewall Rules

To simplify administration of larger collection of systems, you can export or
import firewall systems from different servers) rules very easily on Windows:

Export all firewall rules with the following command:

copy

netsh advfirewall export "C:\temp\MongoDBfw.wfw"

Replace with a path of your choosing. You
can use a command in the following form to import a file created using
this operation:

copy

netsh advfirewall import "C:\temp\MongoDBfw.wfw"

Data Import and Export Tools¶

provides a method for taking data in ,
, or and importing it into a
instance. provides a method to export data from
a instance into JSON, CSV, or TSV.

Note

The conversion between BSON and other formats lacks full
type fidelity. Therefore you cannot use and
for round-trip import and export operations.

Tools documentation migrated to MongoDB Database Tools

Starting in MongoDB 4.4, the documentation for these
tools have been migrated to docs.mongodb.com/database-tools:

For documentation on previous versions of these tools, use the
version selector in the top-left corner of the web page to
view the documentation for your desired MongoDB version.

Quick Links to older documentation

  • MongoDB 4.2 Tools
  • MongoDB 4.0 Tools
  • MongoDB 3.6 Tools

Основы

Прежде чем двигаться дальше, давайте обсудим некоторые важные вещи, которые нам нужно знать, чтобы лучше понимать MongoDB.

Database

В mongodb у вас может быть несколько баз данных на одном сервере mongodb для коллективного хранения данных. Например. Если вы работаете над школьным приложением, вы должны создать школьную базу данных, в которой находятся все ваши коллекции (аналогичные таблице в sql). Эта база данных может содержать коллекцию студентов, коллекцию учителей и т. д.

Полезная команда, которую нужно знать при работе с базами данных:

> show dbs

Эта команда покажет вам все доступные базы данных, которые есть на вашем сервере mongo. А чтобы переключаться между базами данных, вы можете просто ввести:

> use <database name>

Коллекции

Термин коллекция похож на термин таблица в SQL БД. В коллекции хранятся все ваши записи о сущностях которые вам нужно сохранить. Например вы можете создать коллекцию студентов, в которой вы можете хранить записи всех студентов. В этих записях вы можете указать имя ученика, возраст, класс, предметы, оценки и т. д.

Коллекции содержат несколько документов в одном месте.

Подробнее о коллекциях мы поговорим в следующих постах.

Вот некоторые полезные команды, которые следует знать для работы с коллекциями: (переключитесь на выбранную базу данных с помощью use <database name>, чтобы использовать эти команды)

# показать все коллекции в БД
> show collections

# использовать выбранную коллекцию
> db.<collection name>.find()

Документы

Документы — это основные записи, содержащие вашу информацию в формате JSON.

{
   "name": "Ash Ketchum",
   "age": 20,
   "subjects": ,
   "standard": 8
}

Создать документ так же просто, как создать объект в javascript. Туда вы можете записывать любые значения. А так же включать документ внутрь документов. У вас могут быть массивы, объекты, логические значения, числа, строки и т. д. Это делает mongodb подходящим для иерархических данных, где требуется вложенность.

Следует иметь в виду, что структура документа не является жесткой, то есть не обязательно определять все поля во всех документах. Именно это делает mongodb гибким для неструктурированных данных.

В следующем посте будут рассмотрены основные операции CRUD.

Буду признателен любым предложениям (Прим. перевод. — В блоге автора статьи).

Надеюсь, вы найдете его полезным и узнали из него что-то новое.

Удачного кодирования

Spread the love

Behavior¶

If an operation results in an insert, the must
include an on the array
field in order to use the positional operator in the update
statement.

For example, the following upsert operation, which uses in the
update document, specifies an exact equality match condition on the
array field:

copy

db.collection.update(
   { myArray  5, 8  },
   { $set { "myArray.$[]" 10 } },
   { upsert true }
)

If no such document exists, the operation would result in an insertion
of the following document:

copy

{ "_id"  ObjectId(...), "myArray"   10, 10  }

If the upsert operation did not include an exact equality match and no
matching documents were found to update, the upsert operation would
error.

For example, the following operations would error if no matching
documents were found to update:

copy

db.collection.update(
   { myArray 5 },
   { $set { "myArray.$[]" 10 } },
   { upsert true }
)

db.collection.update(
   { },
   { $set { "myArray.$[]" 10 } },
   { upsert true }
)

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий