MongoDB: как выбрать разные значения из нескольких полей


Вы можете использовать следующий синтаксис для выбора различных значений из нескольких полей в MongoDB:

db.collection.aggregate( 
 [
 { $group : { "_id": { field1: " $field1", field2: " $field2 " } } }
 ]
 )

В следующих примерах показано, как использовать этот синтаксис с набором команд со следующими документами:

db.teams.insertOne({team: " Mavs", position: " Guard", points: 31 })
db.teams.insertOne({team: " Mavs", position: " Guard", points: 22 })
db.teams.insertOne({team: " Rockets", position: " Center", points: 19 })
db.teams.insertOne({team: " Rockets", position: " Forward", points: 26 })

db.teams.insertOne({team: " Rockets", position: " Forward", points: 29 }) 
db.teams.insertOne({team: " Cavs", position: " Guard", points: 33 })

Пример: выбор различных значений из нескольких полей

Мы можем использовать следующий запрос, чтобы найти все различные значения из полей team и position:

db.teams.aggregate( 
 [
 { $group : { "_id": { team: " $team", position: " $position " } } }
 ]
 )

Этот запрос возвращает следующие документы:

{ _id: { team: 'Mavs', position: 'Guard' } }
{ _id: { team: 'Rockets', position: 'Forward' } }
{ _id: { team: 'Rockets', position: 'Center' } }
{ _id: { team: 'Cavs', position: 'Guard' } }

И мы можем использовать следующий запрос, чтобы найти все различные значения из полей команды, позиции и очков:

db.teams.aggregate( 
 [
 { $group : {"_id": {team: " $team", position: " $position", points: " $points "}}}
 ]
 )

Этот запрос возвращает следующие документы:

{ _id: { team: 'Cavs', position: 'Guard', points: 33 } }
{ _id: { team: 'Rockets', position: 'Forward', points: 29 } }
{ _id: { team: 'Mavs', position: 'Guard', points: 22 } }
{ _id: { team: 'Rockets', position: 'Forward', points: 26 } }
{ _id: { team: 'Mavs', position: 'Guard', points: 31 } }
{ _id: { team: 'Rockets', position: 'Center', points: 19 } }

Обратите внимание, что возвращаются все документы, так как не существует двух документов с одинаковыми значениями полей «команда», «позиция» и «очки».

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как добавить новое поле в коллекцию
MongoDB: как группировать и считать
MongoDB: как сгруппировать по нескольким полям

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.