Если вы используете определение взгляда в Visual Studio, оно покажет, чего ожидать, как показано на рисунке ниже, в окружении красного цвета.
Первый поиск является расширением коллекции IMongoCollection.Он выполняется в контексте коллекции и требует сбора внешнего ключа в качестве первого параметра, затем локального поля, на котором устанавливается отношение, внешнего поля, которое составляет отношение, и, наконец, типа результата.К сожалению, тип результата не может быть анонимным (или я не узнал, как быть анонимным?).Как всегда ожидается, что из внешней коллекции будет возвращено более одного элемента, поэтому оператор всегда ожидает, что будет возвращен массив.
В вашем случае результат будет таким, как показано во фрагменте ниже.Вам также следует создать класс 'LookedUpBooks'.
var result = await collBooks.Aggregate()
.Lookup<Books, Authors, LookedUpBooks>(collAuthors,
x => x.AuthorId,
y => y.Id,
y => y.LastName
).ToListAsync();
public class LookedUpBooks
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Title { get; set; }
// Add more properties as you need
public IEnumerable<Authors> InnerAuthors { get; set; }
}
Подробнее о Как программировать с MongoDB с помощью драйвера .NET