c# mongo 2.0 уменьшает трафик FindAsync

Я должен получить некоторые незначительные данные из каждого документа, который у меня есть в базе данных, но я все еще хочу уменьшить трафик, чтобы предотвратить "сканирование таблиц" (просто термин, я знаю его не таблицы).

У меня есть коллекция, скажем, "книги" (просто потому, что все используют ее для приведения примеров), теперь моя проблема в том, что я хочу только названия книг с данным автором.

var filter = Builders<Book>.Filter.Eq(n => n.Author, AuthorId);

            List<string> books = new List<string>();

            using (var cursor = await BooksCollection.FindAsync(filter))
            {
                while (await cursor.MoveNextAsync())
                {
                    var batch = cursor.Current;
                    foreach (Book b in batch)
                        books.Add(b.Title);
                }
            }

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

редактировать Я думаю, что это называется "представления" в базе данных SQL.

1 ответов


вы можете уменьшить размер возвращенных документов через проекция, который вы можете установить в