кодесурса
«MongoDB

MongoDB Query Operator Array - $ elemMatch

script1adsense2code
script1adsense3code

Описание

Оператор MongoDB $ elemMatch сопоставляет более одного компонента в элементе массива.

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

Коллекция образцов "table1"

{
        "_id" : ObjectId("5285bd678154c4747b705b4f"),
        "item_code" : "I001",
        "category" : [
                "boy",
                "girl"
        ],
        "description" : [
                {
                        "agegroup" : "3-5",
                        "flavour" : "chocolate",
                        "price" : 5
                },
                {
                        "agegroup" : "6-9",
                        "flavour" : "strawberry",
                        "price" : 6
                },
                {
                        "agegroup" : "10-13",
                        "flavour" : "mango",
                        "price" : 7
                }
        ]
}
{
        "_id" : ObjectId("5285bd808154c4747b705b50"),
        "item_code" : "I002",
        "category" : [
                "boy",
                "girl"
        ],
        "description" : [
                {
                        "agegroup" : "3-5",
                        "flavour" : "vanilla",
                        "price" : 3
                },
                {
                        "agegroup" : "6-9",
                        "flavour" : "lemon",
                        "price" : 6
                },
                {
                        "agegroup" : "10-13",
                        "flavour" : "mango",
                        "price" : 5
                }
        ]
}
{
        "_id" : ObjectId("5285bd8a8154c4747b705b51"),
        "item_code" : "I003",
        "category" : [
                "boy",
                "girl"
        ],
        "description" : [
                {
                        "agegroup" : "3-5",
                        "flavour" : "pineapple",
                        "price" : 5
                },
                {
                        "agegroup" : "6-9",
                        "flavour" : "mango",
                        "price" : 6
                },
                {
                        "agegroup" : "10-13",
                        "flavour" : "vanilla",
                        "price" : 5
                }
        ]
}

Пример - 1 оператора оценочного запроса MongoDB - $ elemMatch

Если мы хотим выбрать все документы из коллекции "table1", которые удовлетворяют условиям в выражении $ elemMatch в описании массива -

Возрастная группа должна быть в пределах «3-5»

Цена должна быть равна 5

можно использовать следующую команду mongodb:

>db.table1.find( { "description": { $elemMatch: { "agegroup" : "3-5","price" : 5}}}).pretty();

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

Выход:

 {
        "_id": ObjectId ("5285bd678154c4747b705b4f"),
        "item_code": "I001",
        "категория": [
                «Мальчик»,
                «Девочка»
        ],
        "описание" : [
                {
                        «возрастная группа»: «3-5»,
                        "аромат": "шоколад",
                        "цена": 5
                },
                {
                        "возрастная группа": "6-9",
                        "аромат": "клубника",
                        "цена": 6
                },
                {
                        «возрастная группа»: «10-13»,
                        "аромат": "манго",
                        "цена": 7
                }
        ]
}
{
        "_id": ObjectId ("5285bd8a8154c4747b705b51"),
        "item_code": "I003",
        "категория": [
                «Мальчик»,
                «Девочка»
        ],
        "описание" : [
                {
                        «возрастная группа»: «3-5»,
                        "аромат": "ананас",
                        "цена": 5
                },
                {
                        "возрастная группа": "6-9",
                        "аромат": "манго",
                        "цена": 6
                },
                {
                        «возрастная группа»: «10-13»,
                        "аромат": "ваниль",
                        "цена": 5
                }
        ]
}

Пример - 2 оператора оценочного запроса MongoDB - $ elemMatch

Если мы хотим выбрать все документы из коллекции "table1", которые удовлетворяют условиям в выражении $ elemMatch в описании массива -

Возрастная группа должна быть в пределах "10-13"

Цена должна быть больше или равна 7

можно использовать следующую команду mongodb:

>db.table1.find( { "description": { $elemMatch: { "agegroup" : "10-13","price":{$gte:7}}}}).pretty();

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

Выход:

 {
        "_id": ObjectId ("5285bd678154c4747b705b4f"),
        "item_code": "I001",
        "категория": [
                «Мальчик»,
                «Девочка»
        ],
        "описание" : [
                {
                        «возрастная группа»: «3-5»,
                        "аромат": "шоколад",
                        "цена": 5
                },
                {
                        "возрастная группа": "6-9",
                        "аромат": "клубника",
                        "цена": 6
                },
                {
                        «возрастная группа»: «10-13»,
                        "аромат": "манго",
                        "цена": 7
                }
        ]
}

Предыдущая: $ все
Далее: размер $

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code