<
кодесурса
«MongoDB

Оператор проекции MongoDB - $

script1adsense2code
script1adsense3code

Описание

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

Оно должно требовать появления поля <array> в документе запроса.

Один позиционный оператор $ может появиться только в проекционном документе.

За один раз в документе запроса может появиться только одно поле массива;

Синтаксис:

 > db.collection.find ({<array>: <value> ...}, {"<array>. $": 1}) 

или же

 db.collection.find ({<array.field>: <value & gt; ...}, {"<array>. $": 1}) 

Параметры:

<массив> - имя массива

<значение> - это могут быть документы, содержащие выражения оператора запроса.

field - имя столбца или поля коллекции.

Имя нашей базы данных - «myinfo», а имя нашей коллекции - «mediitem». Вот коллекция ниже.

Коллекция образцов "Медиитем"

{ "_id" : 1, "batch" : 1, "quantity" : [ 200, 225, 190 ] }
{ "_id" : 2, "batch" : 1, "quantity" : [ 190, 288, 192 ] }
{ "_id" : 3, "batch" : 1, "quantity" : [ 185, 210, 290 ] }
{ "_id" : 4, "batch" : 2, "quantity" : [ 179, 185, 180 ] }
{ "_id" : 5, "batch" : 2, "quantity" : [ 188, 188, 292 ] }
{ "_id" : 6, "batch" : 2, "quantity" : [ 295, 190, 196 ] }

Пример: оператор проекции MongoDB - $

В следующем запросе проекция {"amount. $": 1} возвращает только первый элемент, больший или равный 180 для поля количества.

> db.mediitem.find( { batch: 1, quantity: { $gte: 180 } },{ "quantity.$": 1 } ). pretty();

Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().

Вывод команды:

 {"_id": 1, "количество": [200]}
{"_id": 2, "количество": [190]}
{"_id": 3, "количество": [185]}

Хотя количество полей массива содержит несколько элементов, которые больше или равны 180, оператор $ projection возвращает только первый соответствующий элемент из массива.

Коллекция образцов "Медиитем"

{
        "_id" : 1,
        "batch" : 1,
        "statement" : [
                {
                        "qty" : 200,
                        "prate" : 50,
                        "mrp" : 70
                },
                {
                        "qty" : 250,
                        "prate" : 52,
                        "mrp" : 60
                },
                {
                        "qty" : 190,
                        "prate" : 55,
                        "mrp" : 75
                }
        ]
}
{
        "_id" : 2,
        "batch" : 1,
        "statement" : [
                {
                        "qty" : 210,
                        "prate" : 54,
                        "mrp" : 64
                },
                {
                        "qty" : 225,
                        "prate" : 50,
                        "mrp" : 65
                },
                {
                        "qty" : 195,
                        "prate" : 60,
                        "mrp" : 65
                }
        ]
}

Пример: оператор проекции MongoDB - $ с сортировкой

Если мы хотим вернуть первый элемент, который соответствует условию, qty больше 200 для поля оператора из набора элементов в порядке возрастания, можно использовать следующий запрос mongodb.

>db.mediitem.find( { "statement.qty": { $gt: 200 } },
{ "statement.$": 1 }).sort( { "statement.qty": 1 } ).pretty();

Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().

В приведенном выше запросе projection {"Statement. $": 1} возвращает только первый элемент с количеством больше 200 для поля оператора. Запрос также включает сортировку () для упорядочения по возрастающему полю Statement.qty:

Вывод команды:

 {
        "_id": 2,
        "заявление" : [
                {
                        кол-во: 210,
                        "prate": 54,
                        mrp: 64
                }
        ]
}
{
        "_id": 1,
        "заявление" : [
                {
                        кол-во: 250,
                        "prate": 52,
                        mrp: 60
                }
        ]
}

Предыдущая: $ size
Далее: $ elemMatch (проекция)

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code