поиск

Получите документы в наборе MongoDB

Синтаксис

documents = find(conn,collection)
documents = find(conn,collection,Name,Value)

Описание

пример

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Идентификатор сотрудника'double'
salaryЗарплата сотрудника'double'

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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