Мне нужно выбирать элементы из коллекции по нескольким фильтрам (От наиболее точных, до наименее).
Например:
1 фильтр ищет элементы по 5 полям. Все, что нашел, он возвращает с флагом 0.
Если по 1 фильтру мы не нашли несколько записей, то эти записи пытаемся найти по менее точному матчу (по 3 полям к примеру). Возвращаем их с флагом -1. И т.д.
Я хотел бы это реализовать с помощью хранимой функции на стороне Монги и дергать ее из .NETa один раз.
Я могу вызвать хранимку только из шелла робомонги. Из .NETа это сделать не получается.
var cmd = new JsonCommand<BsonDocument>("{ eval: \"GetData()\" }");
var result = collection.Database.RunCommand(cmd);
В result возвращается только какая то мета-информация о БД и коллекции. Приводил ее к JSON. Данных нету.
Код хранимки
var result = db.getCollection('mydata').find({
'prop1': 'FOO',
'prop2': '123',
});
return result;