кодесурса
«MongoDB

MongoDB сортирует результаты из коллекции

script1adsense2code
script1adsense3code

Описание

На этой странице мы собираемся обсудить, как сортировать данные для одного или нескольких конкретных столбцов в порядке возрастания или убывания.

Синтаксис:

 collection.find (). sort ({column1: 1 или -1 [, column2: 1 или -1]}); 

Параметры:

аргументы Описание
коллекция Название коллекции.
столбец1, столбец2 Имя поля или столбца.
1 или -1 указывает порядок (1 для возрастания и -1 для убывания)

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

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

{
        "_id" : ObjectId("528cab88e1e41035b889f2bf"),
        "user_id" : "user1",
        "password" : "1a2b3c",
        "date_of_join" : "16/10/2010",
        "education" : "M.C.A.",
        "profession" : "CONSULTANT",
        "interest" : "MUSIC",
        "community_name" : [
                "MODERN MUSIC",
                "CLASSICAL MUSIC",
                "WESTERN MUSIC"
        ],
        "community_moder_id" : [
                "MR. Alex",
                "MR. Dang",
                "MR Haris"
        ],
        "community_members" : [
                700,
                200,
                1500
        ],
        "friends_id" : [
                "kumar",
                "harry",
                "anand"
        ],
        "ban_friends_id" : [
                "Amir",
                "Raja",
                "mont"
        ]
}
{
        "_id" : ObjectId("528cabb5e1e41035b889f2c0"),
        "user_id" : "user2",
        "password" : "11aa1a",
        "date_of_join" : "17/10/2009",
        "education" : "M.B.A.",
        "profession" : "MARKETING",
        "interest" : "MUSIC",
        "community_name" : [
                "MODERN MUSIC",
                "CLASSICAL MUSIC",
                "WESTERN MUSIC"
        ],
        "community_moder_id" : [
                "MR. Roy",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members" : [
                500,
                300,
                1400
        ],
        "friends_id" : [
                "pal",
                "viki",
                "john"
        ],
        "ban_friends_id" : [
                "jalan",
                "monoj",
                "evan"
        ]
}
{
        "_id" : ObjectId("528cabd0e1e41035b889f2c1"),
        "user_id" : "user3",
        "password" : "b1c1d1",
        "date_of_join" : "16/10/2010",
        "education" : "M.C.A.",
        "profession" : "IT COR.",
        "interest" : "ART",
        "community_name" : [
                "MODERN ART",
                "CLASSICAL ART",
                "WESTERN ART"
        ],
        "community_moder_id" : [
                "MR. Rifel",
                "MR. Sarma",
                "MR Bhatia"
        ],
        "community_members" : [
                5000,
                2000,
                1500
        ],
        "friends_id" : [
                "philip",
                "anant",
                "alan"
        ],
        "ban_friends_id" : [
                "Amir",
                "Raja",
                "mont"
        ]
}
{
        "_id" : ObjectId("528cabece1e41035b889f2c2"),
        "user_id" : "user4",
        "password" : "abczyx",
        "date_of_join" : "17/8/2009",
        "education" : "M.B.B.S.",
        "profession" : "DOCTOR",
        "interest" : "SPORTS",
        "community_name" : [
                "ATHELATIC",
                "GAMES FAN GYES",
                "FAVOURIT GAMES"
        ],
        "community_moder_id" : [
                "MR. Paul",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members" : [
                2500,
                2200,
                3500
        ],
        "friends_id" : [
                "vinod",
                "viki",
                "john"
        ],
        "ban_friends_id" : [
                "jalan",
                "monoj",
                "evan"
        ]
}

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

Получить результаты, отсортировав один столбец в порядке возрастания

Если мы хотим получить результат путем сортировки по столбцу «Education» в порядке возрастания, можно использовать следующую команду mongodb:

>db.userdetails.find().sort({"education":1})

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

SQL-эквивалентный код

SELECT * 
FROM userdetails 
ORDER BY education

Выход:

 {
        "_id": ObjectId ("528cabb5e1e41035b889f2c0"),
        "user_id": "user2",
        "пароль": "11aa1a",
        "date_of_join": "17/10/2009",
        "образование": "MBA",
        "профессия": "МАРКЕТИНГ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Roy",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                500,
                300,
                1400
        ],
        "friends_id": [
                «Дружок»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}
{
        "_id": ObjectId ("528cabece1e41035b889f2c2"),
        "user_id": "user4",
        "пароль": "abczyx",
        "date_of_join": "17/8/2009",
        "образование": "MBBS",
        "профессия": "ДОКТОР",
        «Интерес»: «СПОРТ»,
        "имя сообщества" : [
                "ATHELATIC",
                "GAMES FAN GYES",
                "FAVOURIT GAMES"
        ],
        "community_moder_id": [
                "MR. Paul",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                2500,
                2200,
                3500
        ],
        "friends_id": [
                «Винод»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}
{
        "_id": ObjectId ("528cab88e1e41035b889f2bf"),
        "user_id": "user1",
        "пароль": "1a2b3c",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "КОНСУЛЬТАНТ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Alex",
                "MR. Dang",
                "MR Haris"
        ],
        "community_members": [
                700,
                200,
                1500
        ],
        "friends_id": [
                «Кумар»,
                "Гарри",
                «Ананд»
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}
{
        "_id": ObjectId ("528cabd0e1e41035b889f2c1"),
        "user_id": "user3",
        "пароль": "b1c1d1",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "IT COR.",
        «Интерес»: «АРТ»,
        "имя сообщества" : [
                "СОВРЕМЕННОЕ ИСКУССТВО",
                "КЛАССИЧЕСКОЕ ИСКУССТВО",
                "ЗАПАДНОЕ ИСКУССТВО"
        ],
        "community_moder_id": [
                "MR. Rifel",
                "MR. Sarma",
                "MR Bhatia"
        ],
        "community_members": [
                5000,
                2000,
                1500
        ],
        "friends_id": [
                «Филип»,
                "муравей",
                "Алан"
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}

Приведенный выше вывод показывает, что все документы появились в порядке возрастания в столбце «образование».

NB. Здесь в примере, «1» после «образования» введены для сортировки по убыванию в столбце «образование».

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

Получить результаты, отсортировав один столбец в порядке убывания

Если мы хотим получить результат путем сортировки по столбцу «образование» в порядке убывания, можно использовать следующую команду mongodb:

>db.userdetails.find().sort({"education":-1})

SQL-эквивалентный код

SELECT * 
FROM userdetails 
ORDER BY education DESC; 

Выход:

 {
        "_id": ObjectId ("528cab88e1e41035b889f2bf"),
        "user_id": "user1",
        "пароль": "1a2b3c",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "КОНСУЛЬТАНТ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Alex",
                "MR. Dang",
                "MR Haris"
        ],
        "community_members": [
                700,
                200,
                1500
        ],
        "friends_id": [
                «Кумар»,
                "Гарри",
                «Ананд»
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}
{
        "_id": ObjectId ("528cabd0e1e41035b889f2c1"),
        "user_id": "user3",
        "пароль": "b1c1d1",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "IT COR.",
        «Интерес»: «АРТ»,
        "имя сообщества" : [
                "СОВРЕМЕННОЕ ИСКУССТВО",
                "КЛАССИЧЕСКОЕ ИСКУССТВО",
                "ЗАПАДНОЕ ИСКУССТВО"
        ],
        "community_moder_id": [
                "MR. Rifel",
                "MR. Sarma",
                "MR Bhatia"
        ],
        "community_members": [
                5000,
                2000,
                1500
        ],
        "friends_id": [
                «Филип»,
                "муравей",
                "Алан"
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}
{
        "_id": ObjectId ("528cabece1e41035b889f2c2"),
        "user_id": "user4",
        "пароль": "abczyx",
        "date_of_join": "17/8/2009",
        "образование": "MBBS",
        "профессия": "ДОКТОР",
        «Интерес»: «СПОРТ»,
        "имя сообщества" : [
                "ATHELATIC",
                "GAMES FAN GYES",
                "FAVOURIT GAMES"
        ],
        "community_moder_id": [
                "MR. Paul",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                2500,
                2200,
                3500
        ],
        "friends_id": [
                «Винод»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}
{
        "_id": ObjectId ("528cabb5e1e41035b889f2c0"),
        "user_id": "user2",
        "пароль": "11aa1a",
        "date_of_join": "17/10/2009",
        "образование": "MBA",
        "профессия": "МАРКЕТИНГ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Roy",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                500,
                300,
                1400
        ],
        "friends_id": [
                «Дружок»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}

Приведенный выше вывод показывает, что все документы появились в порядке возрастания в столбце «образование».

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

Получать результаты путем сортировки по нескольким столбцам

Если мы хотим получить результат путем сортировки по столбцу «образование» в порядке возрастания и столбцу «пароль» в порядке убывания, если два или более основных вида сортировки одинаковы, можно использовать следующую команду mongodb:

>db.userdetails.find().sort({"education":1,"password":-1})

SQL-эквивалентный код

SELECT * 
FROM userdetails 
ORDER BY education,password DESC; 

Выход:

Приведенный выше вывод показывает, что все документы появились в порядке возрастания в столбце «образование», а «идентификатор_пользователя» двух последних документов одинаковы. Затем столбец «пароль» для этих строк расположился в порядке убывания.

 {
        "_id": ObjectId ("528cabb5e1e41035b889f2c0"),
        "user_id": "user2",
        "пароль": "11aa1a",
        "date_of_join": "17/10/2009",
        "образование": "MBA",
        "профессия": "МАРКЕТИНГ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Roy",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                500,
                300,
                1400
        ],
        "friends_id": [
                «Дружок»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}
{
        "_id": ObjectId ("528cabece1e41035b889f2c2"),
        "user_id": "user4",
        "пароль": "abczyx",
        "date_of_join": "17/8/2009",
        "образование": "MBBS",
        "профессия": "ДОКТОР",
        «Интерес»: «СПОРТ»,
        "имя сообщества" : [
                "ATHELATIC",
                "GAMES FAN GYES",
                "FAVOURIT GAMES"
        ],
        "community_moder_id": [
                "MR. Paul",
                "MR. Das",
                "MR Doglus"
        ],
        "community_members": [
                2500,
                2200,
                3500
        ],
        "friends_id": [
                «Винод»,
                "Viki",
                «Джон»
        ],
        "ban_friends_id": [
                "Jalan",
                "Monoj",
                "Evan"
        ]
}
{
        "_id": ObjectId ("528cabd0e1e41035b889f2c1"),
        "user_id": "user3",
        "пароль": "b1c1d1",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "IT COR.",
        «Интерес»: «АРТ»,
        "имя сообщества" : [
                "СОВРЕМЕННОЕ ИСКУССТВО",
                "КЛАССИЧЕСКОЕ ИСКУССТВО",
                "ЗАПАДНОЕ ИСКУССТВО"
        ],
        "community_moder_id": [
                "MR. Rifel",
                "MR. Sarma",
                "MR Bhatia"
        ],
        "community_members": [
                5000,
                2000,
                1500
        ],
        "friends_id": [
                «Филип»,
                "муравей",
                "Алан"
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}
{
        "_id": ObjectId ("528cab88e1e41035b889f2bf"),
        "user_id": "user1",
        "пароль": "1a2b3c",
        "date_of_join": "16/10/2010",
        "образование": "MCA",
        "профессия": "КОНСУЛЬТАНТ",
        «Интерес»: «МУЗЫКА»,
        "имя сообщества" : [
                "СОВРЕМЕННАЯ МУЗЫКА",
                "КЛАССИЧЕСКАЯ МУЗЫКА",
                "ЗАПАДНАЯ МУЗЫКА"
        ],
        "community_moder_id": [
                "MR. Alex",
                "MR. Dang",
                "MR Haris"
        ],
        "community_members": [
                700,
                200,
                1500
        ],
        "friends_id": [
                «Кумар»,
                "Гарри",
                «Ананд»
        ],
        "ban_friends_id": [
                «Амир»,
                "Раджа",
                «Мон»
        ]
}

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

Предыдущий: выбор поля MongoDB
Далее: MongoDB skip () и limit ()

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code