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

мне нужно получить все документы, которые есть в моей коллекции в MongoDB, но я не могу понять, как. Я объявил свою "коллекцию"такой...--3-->

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

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

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

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

MongoDB.Водитель.IMongoCollection не имеет определения для 'Find' и лучшего переопределения метод расширения [сверхдлинный материал]. Find содержит недопустимые аргументы.

3 ответов


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

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

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

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

самый простой способ получить все документы -

var documents = SpeCollection.AsQueryable();

Он также может быть преобразован в Json объект-

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

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

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