У меня есть коллекция с этим документом в MongoDB
Сортировка данных по Sum из 2-х полей и Сортировка по убыванию
string _id;
string item;
string category;
int mobileView;
int webView;
Я хочу взять 10 пунктов, отсортированных по убыванию по общей сумме mobileView
и webView
, есть в любом случае я может достичь этого напрямую, просто запросив, или я должен получить все данные и пропустить все это и суммировать mobileView
и webView
вручную, прежде чем принимать только 10 с наибольшим итогом?
Я читал об Aggregation Framework
, но из того, что я понимаю, это Sum
только одно поле, которое было сгруппировано по запросу. Я понял, что неправильно, если да, то как это сделать, используя Aggregation Framework
.
(я не хочу, чтобы общая Sum
в View
быть сгруппированы по тому же category
, мне это нужно только Sum
View
по каждому пункту перед тем разбирайтесь)
В чем смысл «$ project» и ' 1' в каждом атрибуте в документе?должен ли я создать новый «BsonDocument», как в [здесь] (http://mikaelkoskinen.net/mongodb-aggregation-framework-examples-in-c/). Например, используя Aggregate? 'var results = collection.Aggregate (project) .SetSortOrder (SortBy.Descending (« TotalView »)). SetLimit (10) .ToList();' – Kyojimaru
@Kyojimaru Этапы «конвейера», которые находятся внутри [], являются индивидуальными Документ BSON. Таким образом, аргумент «Агрегат» является «списком» документов BSON. Методы LINQ здесь не применяются, поскольку все указано в «конвейере». Я могу попытаться добраться туда с кратким примером, если это слишком сложно понять прямо сейчас. Как я уже сказал, нужно будет освободить место и запустить Visual Studio для подтверждения синтаксиса. Поэтому мне нужно несколько минут, чтобы выразить то, что я не всегда делаю. –
Я думаю, что у меня есть идея, как использовать его сейчас после использования «MongoVue», но не могу преобразовать, чтобы использовать синтаксис на 'C#'. Прочитайте больше о том, как правильно писать синтаксис в «C#» до утра, и спасибо за руководство. Будем очень благодарны, если вы можете подтвердить синтаксис в 'C#' – Kyojimaru