find

Извлечение документов из набора 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