У меня есть объект (для экземпляра Person
), который я хочу отобразить.Выполнение карты в mongodb с помощью драйвера C#
Я хочу выполнить что-то заранее, как метод выбора LINQ и вернуть IEnumerable<ObjectId>
вместо IEnumerable<Person>
.
Я также нашел, что метод, который я искал, называется map
в терминологии mongodb.
есть ли какой-либо эквивалент, который можно использовать с драйвером C#?
Монго Пример: функция Монго Я говорю о
db.getCollection('Persons').find({}).map(function(p) { return p._id; });
Примечание: я уже знаю
var persons= await personsCollection.Find(_ => true).ToListAsync();
return persons.Select(p=>p._id);
, но я искал что-то «аккуратнее» и это уже часть драйвера mongodb.
EDIT
Я ищу что-то за проекциях.
мой код в настоящее время выглядит следующим образом:
var personsCursor= personsCollection.Find(_ => true);
var personsProjection = personsCursor.Project<Person>(Builders<Person>.Projection.Include(p => p._id));
var personsIds = await personsProjection.ToListAsync();
return personsIds .Select(p => p._id.ToString());
Я столкнулся с проекциями и уже использовал его, но для того, чтобы перейти к Перечислимому ObjectIds, мне все еще нужно выполнить метод Select. – shirbr510
Я отредактировал ответ. Я думаю, что это то, что вам нужно. – MaKCbIMKo
красиво сделано! Большое спасибо :) – shirbr510