2014-01-13 3 views
2

У меня есть users коллекции:найти все документы с общими полями MongoDB

{ 
    id: [email protected], 
    uid: '57672373683' 
} 

{ 
    id: [email protected], 
    uid: '25346346221' 
} 

{ 
    id: [email protected], 
    uid: '57672373683' 
} 

Я хотел бы выполнить запрос, который будет возвращать все пользователи с общим uid поле, например, здесь я буду видеть UserA и userc вместе, потому что они имеют одинаковое поле uid.

Возможно ли с вопросом в монго?

ответ

5

Вы можете сгруппировать пользователей с помощью Агрегационной структуры. Запрос будет как:

db.users.aggregate({$group : {_id : "$uid", users : {$addToSet : "$id"}}}) 

Результаты будут выглядеть следующим образом:

"result" : [ 
    { 
     "_id" : "25346346221", 
     "users" : [ 
      "[email protected]" 
     ] 
    }, 
    { 
     "_id" : "57672373683", 
     "users" : [ 
      "[email protected]", 
      "[email protected]" 
     ] 
    } 
] 
+0

, что это здорово! – Michael

Смежные вопросы