exponenta event banner

найти

Извлечение документов из коллекции MongoDB

Описание

пример

documents = find(conn,collection) возвращает все документы в коллекции с помощью подключения MongoDB ®.

пример

documents = find(conn,collection,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, 'Limit',10 ограничивает количество возвращаемых документов до 10.

Примеры

свернуть все

Подключитесь к MongoDB, извлеките все документы в коллекции и импортируйте их в MATLAB ®. Здесь каждый документ в коллекции представляет сотрудника.

Создание подключения MongoDB к базе данных mongotest. Здесь сервер базы данных dbtb01 размещение этой базы данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат сведения о соединении и базе данных.

  • Имя базы данных: mongotest.

  • Имя пользователя пустое.

  • Сервер базы данных: dbtb01.

  • Номер порта: 27017.

  • Эта база данных содержит шесть коллекций документов. Первые три имени коллекции: airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно выполнено, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных будет закрыто.

Укажите employee коллекция для извлечения документов. Извлеките все документы из коллекции с помощью подключения MongoDB. documents является массивом структуры.

collection = "employee";
documents = find(conn,collection);

Просмотрите первый документ в коллекции. Каждый документ представляет собой структуру с этими полями.

ОбластьОписаниеТип данных
x_idУникальный идентификаторСтруктура
departmentНазвание отделаСимвольный вектор
employeeИдентификатор сотрудникаДважды
salaryЗаработная плата сотрудниковДважды

documents(1)
ans = 

  struct with fields:

          x_id: [1×1 struct]
    department: 'Sales'
      employee: 1
        salary: 60000

Закройте подключение MongoDB.

close(conn)

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

Создание подключения MongoDB к базе данных mongotest. Здесь сервер базы данных dbtb01 размещение этой базы данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат сведения о соединении и базе данных.

  • Имя базы данных: mongotest.

  • Имя пользователя пустое.

  • Сервер базы данных: dbtb01.

  • Номер порта: 27017.

  • Эта база данных содержит шесть коллекций документов. Первые три имени коллекции: airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно выполнено, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных будет закрыто.

Укажите employee коллекция для извлечения документов. Создайте запрос MongoDB в виде символьного вектора, содержащего строку в стиле JSON. Этот запрос позволяет получить всех сотрудников отдела сбыта.

collection = "employee";
mongoquery = '{"department":"Sales"}';

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

documents = find(conn,collection,'Query',mongoquery);

Закройте подключение MongoDB.

close(conn)

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

Создание подключения MongoDB к базе данных mongotest. Здесь сервер базы данных dbtb01 размещение этой базы данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат сведения о соединении и базе данных.

  • Имя базы данных: mongotest.

  • Имя пользователя пустое.

  • Сервер базы данных: dbtb01.

  • Номер порта: 27017.

  • Эта база данных содержит шесть коллекций документов. Первые три имени коллекции: airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно выполнено, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных будет закрыто.

Укажите employee коллекция для извлечения документов. Создайте запрос MongoDB в виде символьного вектора, содержащего строку в стиле JSON. Этот запрос позволяет получить всех сотрудников отдела сбыта.

collection = "employee";
mongoquery = '{"department":"Sales"}';

Создайте запрос сортировки в виде символьного вектора, содержащего строку в стиле JSON. Сортировать документы по salary поле.

sortquery = '{"salary":1.0}';

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

documents = find(conn,collection,'Query',mongoquery,'Sort',sortquery);

Просмотрите сортированные зарплаты для первых двух сотрудников.

documents(1:2).salary
ans =

       60000


ans =

       64440

Закройте подключение MongoDB.

close(conn)

Подключитесь к MongoDB и получите все документы в коллекции. Укажите поля для извлечения для каждого документа. Импортируйте документы в MATLAB. Здесь каждый документ в коллекции представляет сотрудника.

Создание подключения MongoDB к базе данных mongotest. Здесь сервер базы данных dbtb01 размещение этой базы данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат сведения о соединении и базе данных.

  • Имя базы данных: mongotest.

  • Имя пользователя пустое.

  • Сервер базы данных: dbtb01.

  • Номер порта: 27017.

  • Эта база данных содержит шесть коллекций документов. Первые три имени коллекции: airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно выполнено, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных будет закрыто.

Укажите employee коллекция для извлечения документов. Укажите поля для каждого документа с помощью символьного вектора, содержащего строку в стиле JSON. Здесь, верните department и salary поля.

collection = "employee";
fields = '{"department":1.0,"salary":1.0}';

Извлечь все документы в коллекции. Использовать аргумент пары имя-значение 'Projection' для извлечения указанных полей для каждого документа. documents является массивом структуры.

documents = find(conn,collection,'Projection',fields);

Просмотрите первый документ в результатах. В дополнение к уникальному идентификатору документа документ содержит только указанные поля. department и salary.

documents(1)
ans = 

  struct with fields:

          x_id: [1×1 struct]
    department: 'Sales'
        salary: 60000

Закройте подключение MongoDB.

close(conn)

Подключитесь к MongoDB и получите определенное количество документов в коллекции в базе данных. Возврат документов из определенной позиции в результатах с использованием значения смещения. Импортируйте документы в MATLAB. Здесь каждый документ в коллекции представляет сотрудника.

Создание подключения MongoDB к базе данных mongotest. Здесь сервер базы данных dbtb01 размещение этой базы данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат сведения о соединении и базе данных.

  • Имя базы данных: mongotest.

  • Имя пользователя пустое.

  • Сервер базы данных: dbtb01.

  • Номер порта: 27017.

  • Эта база данных содержит шесть коллекций документов. Первые три имени коллекции: airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно выполнено, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных будет закрыто.

Укажите employee коллекция для извлечения документов.

collection = "employee";

Использовать аргумент пары имя-значение 'Skip' пропустить первые пять документов в коллекции. Затем используйте аргумент пара имя-значение 'Limit' для возврата следующих 10 документов в коллекции. documents - массив структуры, содержащий 10 документов.

documents = find(conn,collection,'Skip',5,'Limit',10);

Закройте подключение MongoDB.

close(conn)

Входные аргументы

свернуть все

Подключение MongoDB, указанное как mongo объект.

Имя коллекции, указанное как строковый скаляр.

Пример: "taxidata"

Типы данных: string

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Skip',5,'Limit',10 пропускает первые пять документов в коллекции и возвращает следующие 10 документов.

Запрос MongoDB, указанный как разделенная запятыми пара, состоящая из 'Query' и строковый скалярный или символьный вектор. Укажите строку в стиле JSON для запроса к базе данных.

Пример: 'Query','{"department":"Sales"}' запрашивает в базе данных документы, в которых department поле равно Sales.

Пример: 'Query','{"salary": {$gt: 90000}}' запрашивает в базе данных документы, в которых значение salary поле больше, чем 90000.

Пример: 'Query','{"_id":{$oid:"593fec95b78dc311e01e9204"}}' запрашивает базу данных для документа с идентификатором 593fec95b78dc311e01e9204.

Типы данных: char | string

Поля для извлечения в каждом документе, указанные как разделенная запятыми пара, состоящая из 'Projection' и строковый скалярный или символьный вектор. Укажите строку в стиле JSON для описания полей.

Пример: 'Projection','{"department":1.0,"salary":1.0}' возвращает значение department и salary поля.

Типы данных: char | string

Поле сортировки для документов, указанное как разделенная запятыми пара, состоящая из 'Sort' и строковый скалярный или символьный вектор. Укажите строку в стиле JSON для описания поля сортировки.

Пример: 'Sort','{"department":1.0}' сортирует возвращенные документы по department поле.

Типы данных: char | string

Смещение от начала возвращаемых документов, указанное как разделенная запятыми пара, состоящая из 'Skip' и числовой скаляр.

Пример: 'Skip',5 пропускает первые пять возвращенных документов.

Типы данных: double

Количество возвращаемых документов, указанное как разделенная запятыми пара, состоящая из 'Limit' и числовой скаляр.

Пример: 'Limit',10 возвращает 10 документов.

Типы данных: double

Выходные аргументы

свернуть все

Документы в коллекции MongoDB или запрос к коллекции, возвращаемые в виде структуры, структурного массива или массива ячеек структур.

Каждый документ в стиле JSON представлен в виде структуры. find функция возвращает a:

  • Структура для одного документа

  • Структурный массив для нескольких документов, содержащих одни и те же поля

  • Массив ячеек структур для нескольких документов, содержащих различные поля

Совет

  • find функция оценивает требования к памяти при извлечении многих документов с помощью кучи Java ®. Чтобы избежать проблем с нехваткой памяти, функция автоматически ограничивает количество возвращаемых документов в одном выполнении.

    При возникновении проблемы функция выдает предупреждающее сообщение, например: Warning: Available memory is less than Total memory required. Limiting the RESULTSET from 15837001 to 59248. Use Skip and Limit to retrieve resultset in batches.

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

Представлен в R2017b