MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

nie można przekonwertować z „MongoDB.Driver.IMongoCollection<>” na „System.Collections.Generic.IEnumerable<>”

W nowym sterowniku MongoDB całość opiera się teraz na metodach asynchronicznych, więc stare metody odpytywania danych nie mają już zastosowania.

Zasadniczo chciałbyś utworzyć klasę MongoRepository z metodą find, a to repozytorium mogłoby mieć następującą metodę 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();
    }

}

Można to następnie zaimplementować w następujący sposób:

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

Oto kilka dobrych informacji na temat sposobu implementacji zmian w interfejsie API:http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Porady dotyczące migracji z MongoMapper do Mongoid?

  2. Mongodb aktualizuje głęboko zagnieżdżony subdokument

  3. Jak wypełnić relację jeden do wielu u mangusty z odniesieniem do rodziców?

  4. Czy połączenie z MongoDB jest automatycznie zamykane w procesie process.exit()?

  5. Jak zaktualizować wartość konkretnego osadzonego dokumentu, wewnątrz tablicy, określonego dokumentu w MongoDB?