кодесурса
«MongoDB

Оператор запроса сравнения MongoDB - $ in & $ nin

script1adsense2code
script1adsense3code

Описание

На этой странице мы собираемся обсудить операторы сравнения $ in и $ nin.

Оператор $ in используется для извлечения документов из коллекции после проверки, соответствует ли значение определенного столбца значениям, указанным в массиве, или нет.

Оператор $ nin используется для извлечения документов из коллекции, за исключением того, что он сопоставляет документы, для которых указанное поле не имеет никакого значения в указанном массиве.

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

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

{
        "_id" : ObjectId("528f4e630fe5e6467e58ae7b"),
        "user_id" : "user1",
        "password" : "1a2b3c",
        "sex" : "Male",
        "age" : 17,
        "date_of_join" : "16/10/2010",
        "education" : "M.C.A.",
        "profession" : "CONSULTANT",
        "interest" : "MUSIC",
        "extra" : {
                "community_name" : [
                        "MODERN MUSIC",
                        "CLASSICAL MUSIC",
                        "WESTERN MUSIC"
                ],
                "community_moder_id" : [
                        "MR. Alex",
                        "MR.   Dang",
                        "MR Haris"
                ],
                "community_members" : [
                        700,
                        200,
                        1500
                ],
                "friends" : {
                        "valued_friends_id" : [
                                "kumar",
                                "harry",
                                "anand"
                        ],
                        "ban_friends_id" : [
                                "Amir",
                                "Raja",
                                "mont"
                        ]
                }
        }
}
{
        "_id" : ObjectId("528f4e720fe5e6467e58ae7c"),
        "user_id" : "user2",
        "password" : "11aa1a",
        "sex" : "Male",
        "age" : 24,
        "date_of_join" : "17/10/2009",
        "education" : "M.B.A.",
        "profession" : "MARKETING",
        "interest" : " MUSIC",
        "extra" : {
                "community_name" : [
                        "MODERN MUSIC",
                        "CLASSICAL MUSIC",
                        "WESTERN MUSIC"
                ],
                "co mmunity_moder_id" : [
                        "MR. Roy",
                        "MR. Das",
                        "MR Doglus"
                ],
                "community_members" : [
                        500,
                        300,
                        1400
                ],
                "friends" : {
                        "valued_friends_id" : [
                                "pal",
                                "viki",
                                "john"
                        ],
                        "ban_friends_id" : [
                                "jalan",
                                "mono j",
                                "evan"
                        ]
                }
        }
}
{
        "_id" : ObjectId("528f4e7e0fe5e6467e58ae7d"),
        "user_id" : "user3",
        "password" : "b1c1d1",
        "sex" : "Female",
        "age" : 19,
        "date_of_join" : "16/10/2010",
        "education" : "M.C.A.",
        "profession" : "IT COR.",
        "interest" : "AR T",
        "extra" : {
                "community_name" : [
                        "MODERN ART",
                        "CLASSICAL ART",
                        "WESTERN ART"
                ],
                "community_mo der_id" : [
                        "MR. Rifel",
                        "MR. Sarma",
                        "MR Bhatia"
                ],
                "community_members" : [
                        5000,
                        2000,
                        1500
                ],
                "friends" : {
                        "valued_friends_id" : [
                                "philip",
                                "anant",
                                "alan"
                        ],
                        "ban_friends_id" : [
                                "Amir",
                                "Raja",
                                "mont"
                        ]
                }
        }
}
{
        "_id" : ObjectId("528f4e910fe5e6467e58ae7e"),
        "user_id" : "user4",
        "password" : "abczyx",
        "sex" : "Female",
        "age" : 22,
        "date_of_join" : "17/8/2009",
        "education" : "M.B.B.S.",
        "profession" : "DOCTOR",
        "interest" : "SPORTS",
        "extra" : {
                "community_name" : [
                        "ATHELATIC",
                        "GAMES FAN GYES",
                        "FAVOURIT GAMES"
                ],
                "community_moder_id" : [
                        "MR. Paul",
                        "MR. Das",
                        "MR Doglus"
                ],
                "community_members" : [
                        2500,
                        2200,
                        3500
                ],
                "friends" : {
                        "valued_friends_id" : [
                                "vinod",
                                "viki",
                                "john"
                        ],
                        "ban_friends_id" : [
                                "jalan",
                                "monoj",
                                "evan"
                        ]
                }
        }
}
{
        "_id" : ObjectId("528f4f8a0fe5e6467e58ae7f"),
        "user_id" : "user5",
        "password" : "user5",
        "sex" : "Male",
        "age" : 21,
        "date_of_join" : "17/08/2011",
        "education" : "MCA",
        "profession" : "S.W. Engineer",
        "interest" : "SPORTS",
        "extra" : {
                "community_name" : [
                        "ATHELATIC",
                        "GAMES FAN GYES",
                        "FAVOURIT GAMES"
                ]
        }
}

Документ написан в командной строке

Условный оператор MongoDB - $ в примере

Если мы хотим извлечь документы из коллекции «testtable», которая содержит значение «age» в указанных значениях [19,20,22,25] в массиве, можно использовать следующую команду mongodb:

>db.testtable.find({"age" : { $in : [19,20,22,25]}})

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

Sql эквивалентная команда

SELECT * 
FROM testtable 
WHERE age IN (19,20,22,25); 

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

 {
        "_id": ObjectId ("528f4e7e0fe5e6467e58ae7d"),
        "user_id": "user3",
        "пароль": "b1c1d1",
        "секс": "женский",
        «возраст»: 19,
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "IT COR.",
        «проценты»: «АР Т»,
        "extra": {
                "имя сообщества" : [
                        "СОВРЕМЕННОЕ ИСКУССТВО",
                        "КЛАССИЧЕСКОЕ ИСКУССТВО",
                        "ЗАПАДНОЕ ИСКУССТВО"
                ],
                "community_mo der_id": [
                        "MR. Rifel",
                        "MR. Sarma",
                        "MR Bhatia"
                ],
                "community_members": [
                        5000,
                        2000,
                        1500
                ],
                "друзья": {
                        "valued_friends_id": [
                                «Филип»,
                                "муравей",
                                "Алан"
                        ],
                        "ban_friends_id": [
                                «Амир»,
                                "Раджа",
                                «Мон»
                        ]
                }
        }
}
{
        "_id": ObjectId ("528f4e910fe5e6467e58ae7e"),
        "user_id": "user4",
        "пароль": "abczyx",
        "секс": "женский",
        «возраст»: 22,
        "date_of_join": "17/8/2009",
        "образование": "MBBS",
        "профессия": "ДОКТОР",
        «Интерес»: «СПОРТ»,
        "extra": {
                "имя сообщества" : [
                        "ATHELATIC",
                        "GAMES FAN GYES",
                        "FAVOURIT GAMES"
                ],
                "community_moder_id": [
                        "MR. Paul",
                        "MR. Das",
                        "MR Doglus"
                ],
                "community_members": [
                        2500,
                        2200,
                        3500
                ],
                "друзья": {
                        "valued_friends_id": [
                                «Винод»,
                                "Viki",
                                «Джон»
                        ],
                        "ban_friends_id": [
                                "Jalan",
                                "Monoj",
                                "Evan"
                        ]
                }
        }
}

Документ написан в командной строке

MongoDB $ в операторе с точечной нотацией

Если мы хотим получить документы из коллекции «testtable», которые содержат значения для «valued_friends_id» в «friends» и «extra» в указанных значениях [«vinod», «janal», «nonoj»] в массиве, можно использовать следующую команду mongodb:

 > db.testtable.find ({"extra.friends.valued_friends_id": {$ in: ["vinod", "janal", "nonoj"]}}) 

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

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

 {
        "_id": ObjectId ("528f4e910fe5e6467e58ae7e"),
        "user_id": "user4",
        "пароль": "abczyx",
        "секс": "женский",
        «возраст»: 22,
        "date_of_join": "17/8/2009",
        "образование": "MBBS",
        "профессия": "ДОКТОР",
        «Интерес»: «СПОРТ»,
        "extra": {
                "имя сообщества" : [
                        "ATHELATIC",
                        "GAMES FAN GYES",
                        "FAVOURIT GAMES"
                ],
                "community_moder_id": [
                        "MR. Paul",
                        "MR. Das",
                        "MR Doglus"
                ],
                "community_members": [
                        2500,
                        2200,
                        3500
                ],
                "друзья": {
                        "valued_friends_id": [
                                «Винод»,
                                "Viki",
                                «Джон»
                        ],
                        "ban_friends_id": [
                                "Jalan",
                                "Monoj",
                                "Evan"
                        ]
                }
        }
}

Документ написан в командной строке

Оператор MongoDB $ nin (not in)

Если мы хотим извлечь документы из коллекции «testtable», которая не содержит значений для «valued_friends_id» в «friends» в «extra» в указанных значениях [«vinod», «janal», «nonoj», «anant» ] в массиве можно использовать следующую команду mongodb:

>db.testtable.find({"extra.friends.valued_friends_id" : {$nin : ["vinod","janal","nonoj","anant"]}})

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

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

 {
        "_id": ObjectId ("528f4e630fe5e6467e58ae7b"),
        "user_id": "user1",
        "пароль": "1a2b3c",
        "секс": "мужской",
        «возраст»: 17,
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "КОНСУЛЬТАНТ",
        «Интерес»: «МУЗЫКА»,
        "extra": {
                "имя сообщества" : [
                        "СОВРЕМЕННАЯ МУЗЫКА",
                        "КЛАССИЧЕСКАЯ МУЗЫКА",
                        "ЗАПАДНАЯ МУЗЫКА"
                ],
                "community_moder_id": [
                        "MR. Alex",
                        "MR. Dang",
                        "MR Haris"
                ],
                "community_members": [
                        700,
                        200,
                        1500
                ],
                "друзья": {
                        "valued_friends_id": [
                                «Кумар»,
                                "Гарри",
                                «Ананд»
                        ],
                        "ban_friends_id": [
                                «Амир»,
                                "Раджа",
                                «Мон»
                        ]
                }
        }
}
{
        "_id": ObjectId ("528f4e720fe5e6467e58ae7c"),
        "user_id": "user2",
        "пароль": "11aa1a",
        "секс": "мужской",
        «возраст»: 24,
        "date_of_join": "17/10/2009",
        "образование": "MBA",
        "профессия": "МАРКЕТИНГ",
        «Интерес»: «МУЗЫКА»,
        "extra": {
                "имя сообщества" : [
                        "СОВРЕМЕННАЯ МУЗЫКА",
                        "КЛАССИЧЕСКАЯ МУЗЫКА",
                        "ЗАПАДНАЯ МУЗЫКА"
                ],
                "co mmunity_moder_id": [
                        "MR. Roy",
                        "MR. Das",
                        "MR Doglus"
                ],
                "community_members": [
                        500,
                        300,
                        1400
                ],
                "друзья": {
                        "valued_friends_id": [
                                «Дружок»,
                                "Viki",
                                «Джон»
                        ],
                        "ban_friends_id": [
                                "Jalan",
                                "моно J",
                                "Evan"
                        ]
                }
        }
}
{
        "_id": ObjectId ("528f4f8a0fe5e6467e58ae7f"),
        "user_id": "user5",
        "пароль": "user5",
        "секс": "мужской",
        «возраст»: 21,
        "date_of_join": "17/08/2011",
        "образование": "MCA",
        «профессия»: «инженер SW»,
        «Интерес»: «СПОРТ»,
        "extra": {
                "имя сообщества" : [
                        "ATHELATIC",
                        "GAMES FAN GYES",
                        "FAVOURIT GAMES"
                ]
        }
}

Документ написан в командной строке

Предыдущая: $ ne
Далее: Логические операторы запросов $ и $ not

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code