Как можно найти разные коллекции в mongodb, чтобы включить значение массива, если значение одинаково? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть две коллекции "Пользователь" и "Сообщения", и в отдельных коллекциях есть один и тот же массив "меток".

Метка включает в себя множество значений типа String, которые означают особую функцию.

Я хочу, чтобы метки поста совпадали с теми же значениями, что и метки пользователя, и группируем их.

Я пытаюсь использовать заполнение совпадений для двух коллекций, но какое условие мне следует использовать, это меня смущает.

Коллекция пользователей

 {
   userid:1
   username:"Jack",
   labels:["cook"  , "code"]
 },
 {
   userid:2
   username:"Kevin",
   labels:["design" ,"cook"]
 }


Почтовая коллекция

{
   postid:1
   title:"Molecular gastronomy"
   labels:["code" ,"technology"]
},
{
   postid:2
   title:"Web design"
   labels:["code" ,"technology"]
},
{
   postid:3
   title:"black hole"
   labels:["technology"]
}

, и я хочу привести результат ниже

{
  code:{
   postid:[1,2] ,
   username:["Jack"]
  }
  technonogy:{
  postid:[1,2],
  username:null
  },
   cook:{
   postid:null,
   username:["Jack" , "Kevin"]
  },
   design:{
   postid:null,
   username:["Kevin"]
  }
}

Моя решимость 1

Я вызов новой коллекции "labelGroup ", чтобы сохранить при создании пользователя или публикации, а затем сохранить каждую коллекцию в коллекциях группы ярлыков в другом массиве объектов.

Resolve 2

найти все коллекции" User "и" Post ", а затем использоватьКарта javascript и фильтр для их устранения и возврата группы

Есть ли более эффективные способы решения этой проблемы?

...