Size: a a a

2020 May 19

AM

Aga Mahmudov in MongoDB Russian
Господа, не подскажите как найти записи учитывая список исключений айдишников? Типа блэклиста записей, которые не должны попасть в резалт

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

AM

Aga Mahmudov in MongoDB Russian
Тоже решил, оказывается есть $nin, противоположность $in
источник

y

yopp in MongoDB Russian
Aga Mahmudov
Приветствую, возник вопрос касательно структуры бд: пилим механику мэтчинга как в тиндере. После оценивания профиля (like/dislike) чекается на наличие запись в бд matches, если есть и это лайк - мэтчим. Если нет, создаём новую запись и указываем свой айдишник, партнёра и фидбек (если лайк, то секунды, обычный список).

Вопрос, как грамотно построить структуру записей matches чтобы мэтчить и  в дальнейшем без проблем можно было извлекать как историю и исключать повторы просмотров?
Так как задача сводится к вычитанию небольшого множества оцененых профилей из гиганского множества неоцененых множеств, то простого ответа на этот вопрос нет.

Пока первое множество где-то в тысячах, а второе до миллиона, то проще всего обойтись $nin
источник

AM

Aga Mahmudov in MongoDB Russian
yopp
Так как задача сводится к вычитанию небольшого множества оцененых профилей из гиганского множества неоцененых множеств, то простого ответа на этот вопрос нет.

Пока первое множество где-то в тысячах, а второе до миллиона, то проще всего обойтись $nin
Да, реализовал через $nin - работает как часы)
источник

ИС

Иван Стёпин... in MongoDB Russian
Коллеги, снова ищу вашей помощи!
Использую MongoDB.Driver 2.7.2 C#.
Есть коллекция документов Data, которая содержит точность измерений.
Нужно отсортировать коллекцию Data по точности (по убыванию/возрастанию)
В памяти сортировать - идея плохая, т.к. записей очень много
Можно ли это сделать с средствами MongoDB?
источник

ИС

Иван Стёпин... in MongoDB Russian
источник

ИС

Иван Стёпин... in MongoDB Russian
источник

N

Nick in MongoDB Russian
Иван Стёпин
Коллеги, снова ищу вашей помощи!
Использую MongoDB.Driver 2.7.2 C#.
Есть коллекция документов Data, которая содержит точность измерений.
Нужно отсортировать коллекцию Data по точности (по убыванию/возрастанию)
В памяти сортировать - идея плохая, т.к. записей очень много
Можно ли это сделать с средствами MongoDB?
индекс на поле со сзначением и указывать сортировку при выборке
источник

ИС

Иван Стёпин... in MongoDB Russian
Nick
индекс на поле со сзначением и указывать сортировку при выборке
Добавил индекс к полю AccuracyModel.Value.
Но совсем не понятно как указать сортировку при выборке.
OrderByDescending принимает в качестве аргумента селектор на поле. Когда делаю

query = query.Where(z => z.Accuracy != null...)
 .OrderByDescending(x => x.Accuracy - это словарь в c#, а в монге ArrayOfDocuments )
 не могу понять, как выбрать из словаря поле
источник

N

Nick in MongoDB Russian
в C# не знаю, поищите доку к драйверу или может еще кто подскажетё
источник

ИС

Иван Стёпин... in MongoDB Russian
Nick
в C# не знаю, поищите доку к драйверу или может еще кто подскажетё
Спасибо, огромное! Товарищи, если есть у кого-то опыт/мысли помогите, пожалуйста
источник

y

yopp in MongoDB Russian
Иван Стёпин
Добавил индекс к полю AccuracyModel.Value.
Но совсем не понятно как указать сортировку при выборке.
OrderByDescending принимает в качестве аргумента селектор на поле. Когда делаю

query = query.Where(z => z.Accuracy != null...)
 .OrderByDescending(x => x.Accuracy - это словарь в c#, а в монге ArrayOfDocuments )
 не могу понять, как выбрать из словаря поле
А в чем именно проблема? OrderBy действительно принимает название поля для сортировки. Насколько я понимаю x это и есть тип, а x.Accuracy это и есть поле.

Как следствие если порядок сортировки совпадает с порядком сортировке в индексе, то курсор будет выдавать результаты в этом порядке
источник

ИС

Иван Стёпин... in MongoDB Russian
yopp
А в чем именно проблема? OrderBy действительно принимает название поля для сортировки. Насколько я понимаю x это и есть тип, а x.Accuracy это и есть поле.

Как следствие если порядок сортировки совпадает с порядком сортировке в индексе, то курсор будет выдавать результаты в этом порядке
Камень предкновения в том, что x.Accuracy это поле - словарь/ArrayOfDocuments. А сортировать нужно по полю, например, x.Accuracy.Value. но напрямую в OrderBy не могу указать x.Accuracy.Value, т.к. x.Accuracy - словарь
источник

ИС

Иван Стёпин... in MongoDB Russian
Получилось запутанно)
источник

y

yopp in MongoDB Russian
type => type.Accuracy.Select(sub => sub.Value)?
источник

ИС

Иван Стёпин... in MongoDB Russian
yopp
type => type.Accuracy.Select(sub => sub.Value)?
.OrderByDescending(x => x.Accuracy.Select(e => e.Value.Value))
источник

ИС

Иван Стёпин... in MongoDB Russian
Монга тут выбрасывает ошибку, что Only fields are
источник

y

yopp in MongoDB Russian
Only fields are что именно? :)
источник

ИС

Иван Стёпин... in MongoDB Russian
Select возвращает выборку и монге это не нравится
источник

ИС

Иван Стёпин... in MongoDB Russian
видимо OrderBy не должен включать внутри себя выполняемые конструкции
источник