у каждой анкеты хранить пользователей которые её просмотрели чтобы соответственно пользователям дубликаты не совать, этот массив обещает быть громадным, скажите - это не кейс для NoSQL, когда есть такого вида сложный поиск?
Насколько громадный? Размер документа не может быть больше 16мб. А так addToSet вам сможет помочь, при добавлении в массив, что бы не было дубликатов
Как вариант можете сделать отдельной коллекцией. Один документ это один уникальный просмотр. в документе будут поля Id документа, id пользователя, id анкеты. Раз вам нужно не показывать дубликаты, то и индексы так проще будет построить. Ну и в ограничение 16мб на документ не упрётесь
так в таком случае надо будет делать иннер джоин(в монге?). При итерации по коллекции профилей надо будет идти в коллекцию просмотров и смотреть не просматривал ли этот пользователь этот профиль
я о том чтобы проверять какие пользователю профили подсовывать(проверять посмотрел ли пользователь этот профиль ранее)
Это больше похоже на линковочную табличку из мира реляционок
Делается обычный lookup, а итерацию чанковать. Т.е. выводить за раз не более 50 результатов, чтобы апишка не ахевала
Обсуждают сегодня