Оператор оценочного запроса MongoDB - $ mod
Описание
Оператор $ mod используется, чтобы помочь пользователю извлечь документы из коллекции для определенного поля, которое состоит из четного или нечетного числа. Это можно легко сделать, потому что оператор $ mod вычисляет остаток и проверяет, равен ли он 0 или нет. Это работает как «где» в Sql.
Если не используется параметр с $ mod, который ведет себя как предложение 'where', результаты будут отображаться там, где остаток равен 0, в противном случае результаты не отображаются.
Оператор $ mod работает только с целочисленными значениями, а не с числовым значением типа строки.
Имя нашей базы данных - «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 $ mod оператор
Если мы хотим извлечь документы из коллекции «testtable», где значение поля age делится на 8, можно использовать следующую команду mongodb:
>db.testtable.find({"age" : {$mod : [8,0]}}).pretty();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
SQL эквивалентная команда
SELECT *
FROM testtable
WHERE MOD(age,8)=0;
Выход:
{ "_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" ] } } }
Документ написан в командной строке
Приведенный выше вывод показывает, что из коллекции появляются документы, содержащие такое значение для поля «age», которое имеет остаток 0 после деления на 8. «$ mod [8]» означает «age% (оператор по модулю) 8 = 0»
Пример оператора MongoDB $ mod
Если мы хотим получить документы из коллекции «testtable», где значение поля age делится на 9, можно использовать следующую команду mongodb:
gt;db.testtable.find({"age" : {$mod : [9,0]}})
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
SQL эквивалентная команда
SELECT *
FROM testtable
WHERE MOD(age,9)=0;
Приведенная выше команда не возвращает выходных данных, поскольку ни один документ не содержит такого значения для поля «возраст», которое может делиться на 9.
MongoDB $ mod оператор с использованием параметра
Если мы хотим извлечь документы из коллекции «testtable», где значение поля age содержит такое значение, которое возвращает остаток 2 после деления на 5, можно использовать следующую команду mongodb:
>db.testtable.find({"age" : {$mod : [5,2]}}).pretty();
SQL эквивалентная команда
SELECT *
FROM testtable
WHERE MOD(age,5)=2;
Выход:
{ "_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 ("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" ] } } }
Документ написан в командной строке
Приведенный выше вывод показывает, что документы появляются из коллекции, содержащей такое значение для поля «age», которое имеет остаток 2 после деления на 5. «$ mod [5,2]» означает «age% (оператор по модулю) 5 = 2" .
Новый контент: Composer: менеджер зависимостей для PHP , R программирования