sql >> Database >  >> NoSQL >> MongoDB

kan niet converteren van 'MongoDB.Driver.IMongoCollection<>' naar 'System.Collections.Generic.IEnumerable<>'

In het nieuwe MongoDB-stuurprogramma is het hele ding nu gebaseerd op asynchrone methoden, dus de oude methoden voor het opvragen van gegevens zijn niet langer van toepassing.

In principe zou je een MongoRepository-klasse willen maken, met een zoekmethode, en die repository zou de volgende zoekmethode kunnen hebben:

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();
    }

}

Dit zou dan als volgt kunnen worden geïmplementeerd:

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

Er is wat goede informatie over hoe de wijzigingen aan de API hier kunnen worden geïmplementeerd:http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/



  1. Waarom gebruikt MongoDB *client* in dit geval meer geheugen dan de server?

  2. Kan ik voor elke geaggregeerde zoekopdracht in MongoDB een aanvraag indienen?

  3. Meteor - MongoDB-fout:kan $addToSet-modifier niet toepassen op niet-array

  4. Mongo-shell voert query uit vanuit bestand en toont resultaat