Подтвердить что ты не робот

Получить все "документы" из коллекции MongoDB '

Мне нужно получить все документы, которые находятся в моей коллекции в MongoDB, но я не могу понять, как это сделать. Я объявил свою "коллекцию" следующим образом:

private static IMongoCollection<Project> SpeCollection = db.GetCollection<Project>("collection_Project");

И я следовал тому, что объясняется в этом учебнике MongoDB. Я скорректировал его для своих нужд, например -

 var documents = await SpeCollection.Find(new Project()).ToListAsync();

Однако я продолжаю иметь следующую ошибку -

MongoDB.Driver.IMongoCollection не имеет определения для "Найти" и лучшего переопределения метода расширения [superlong stuff]. Поиск содержит недействительные аргументы.

4b9b3361

Ответ 1

Используя текущую версию драйвера (v2.0), вы можете сделать это, передав фильтр, который соответствует всем:

var documents = await SpeCollection.Find(_ => true).ToListAsync();

Они также добавили пустой фильтр (FilterDefinition.Empty), который поступит в следующую версию драйвера (v2.1):

var documents = await SpeCollection.Find(Builders<Project>.Filter.Empty).ToListAsync();

Ответ 2

Самый простой способ

Получить все documents-

var documents = SpeCollection.AsQueryable();

Также конвертировать в JSON object-

var json = Json(documents, JsonRequestBehavior.AllowGet);

Ответ 3

Если вам нужны все документы, почему бы не использовать Find all?

var documents = await SpeCollection.Find(new BsonDocument()).ToListAsync();