sql >> Databáze >  >> NoSQL >> MongoDB

nelze převést z 'MongoDB.Driver.IMongoCollection<>' na 'System.Collections.Generic.IEnumerable<>'

V novém ovladači MongoDB je nyní celá věc založena na asynchronních metodách, takže staré metody pro dotazování dat již neplatí.

V podstatě byste chtěli vytvořit třídu MongoRepository s metodou find a toto úložiště by mohlo mít následující metodu Find:

public class MongoRepository<T>
{

    protected IMongoCollection<T> _collection;

    public MongoRepository(string collectionName) 
    {
        // Get your mongo client and database objects here.
        _collection = _mongoDb.GetCollection<T>(collectionName);
    }

    public async Task<IList<T>> Find(Expression<Func<T, bool>> query)
    {
        // Return the enumerable of the collection
        return await _collection.Find<T>(query).ToListAsync();
    }

}

To by pak mohlo být implementováno takto:

MongoRepository<Registration> repo = new MongoRepository("Registrations");
IList<Registration> registrations = repo.Find(i => i.SomeProperty == true);

Zde je několik dobrých informací o tom, jak lze implementovat změny API:http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/



  1. Jak přidat json do vnořeného pole mongodb dokumentu pomocí Spring?

  2. Získejte název měsíce z data v SQL

  3. nelze vytvořit základní mongo shell skript s ověřováním

  4. Použití $count v rámci operace addField v agregaci MongoDB