Как рассчитать среднее значение одного свойства в C # Mongodb строго типизированного драйвера - PullRequest
0 голосов
/ 07 мая 2018

Я использую официальный строго типизированный драйвер C # MongoDb версии 2.7.0 для взаимодействия с MongoDB.

Рассмотрим следующий класс:

public class Book {

    public ObjectId Id {get; set;}

    public string AuthorId {get; set;}

    public int PublishYear {get; set;}

    public double Price {get; set;}

}

Как получить среднее значение книгцены (как двойные), принадлежащие конкретному автору с использованием идентификатора автора.

Редактировать: -

Это то, что я пробовал до сих пор

var client = new MongoClient(ConnectionString);

var database = client.GetDatabase(DatabaseName);

var books = database.GetCollection<Book>("Books");

var result = books.Aggregate().Match(b => b.AuthorId == authorId).Group<Book,double>(); //I stopped here at group

1 Ответ

0 голосов
/ 07 мая 2018

Ссылка на следующий ответ в качестве примера

MongoDB.Driver.Builders, как группировать и получить среднее значение

вместе с тем, что вы пробовали до сих пор, попробуйте следующее

var result = await books.Aggregate()
    .Match(b => b.AuthorId == authorId)
    .Group(b => b.AuthorId, g => 
        new {
            AuthorId = g.Key,
            AveragePrice = g.Average(p => p.Price)
        })
    .ToListAsync();
double average = result.Select(_ => _.AveragePrice).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...