2017-02-21 37 views
0

Ниже я определяю структуру для пользователя (MongoDB документ)Получить вложенные объекты в MongoDB документе с критериями родителя и ребенка ссылочного документа

{ 
    "_id" : ObjectId("588db8c76b1d5a8faf"), 
    "uid" : "123456", 
    "groups" : [{_id : "1", "uid" : "123"}, {_id : "1", "uid" : "258"}, {_id : "1", "uid" : "296"}], 
    "connections" : [ 
     { 
      "$ref" : "user", 
      "$id" : ObjectId("588db8e36b1d5a9126") 
     }, 
     { 
      "$ref" : "user", 
      "$id" : ObjectId("588db8e06b1d5a9124") 
     }, 
     { 
      "$ref" : "user", 
      "$id" : ObjectId("588db8e36b1d5a9127") 
     } 
     ] 
} 

, где соединения также пользователи.

Каковы возможные запросы, чтобы иметь все соединения, принадлежащие к группе X для пользователя с UID = Y.

Я использую MongoDB 3.4. Я буду принимать запрос Mongo Query или Spring Data like.

+1

ссылка DB может быть запрошена '_id' только. Вы не можете включить часть 'group'. – Veeram

ответ

0

я не уверен, что я понимаю, описание, может быть, это помогает U

db.collection.find({"connections": {$elemMatch: {"$id": {$eq: Y}}}}) 
+0

Что это должно делать? – javadev

+0

найти все группы, которые имеют соответствие по $ id в массиве «collection» – looffee

+0

Я хотел, чтобы пользовательские соединения Y (идентифицированные uid) (дочерние элементы пользователя), принадлежащие группе X. – javadev