FindAll in MongoDB .NET Driver 2.0 FindAll in MongoDB .NET Driver 2.0 mongodb mongodb

FindAll in MongoDB .NET Driver 2.0


You can't use Find without a filter.

You can however use a filter that passes everything:

var findFluent = await _fooBarCollection.Find(_ => true);

Or you can use an empty document which is equivalent:

var findFluent = await _fooBarCollection.Find(new BsonDocument());

They have also added an empty filter but it will only be available in newer versions of the driver:

var findFluent = await _fooBarCollection.Find(Builders<FooBar>.Filter.Empty);


FindAll() is the part of MongoDB 1x series driver. to get the same functionality in 2x series driver use find() with empty BSON Document.

var list = await collection.Find(new BsonDocument()).ToListAsync();foreach (var dox in list){    Console.WriteLine(dox);}

Reference


It works for me

public class TestProductContext{    MongoClient _client;    IMongoDatabase _db;    public TestProductContext()    {        _client = new MongoClient("mongodb://localhost:27017");        _db = _client.GetDatabase("EmployeeDB");    }    public IMongoCollection<Product> Products => _db.GetCollection<Product>("Products");}public class DataAccess{    private TestProductContext _testProductContext;    public DataAccess(TestProductContext testProductContext)    {        _testProductContext = testProductContext;    }    public List<Product> GetProducts()    {        List<Product> pto = new List<Product>();        var cursor = _testProductContext.Products.Find(new BsonDocument()).ToCursor();        foreach (var document in cursor.ToEnumerable())        {            pto.Add(document);        }    }}