web-dev-qa-db-fra.com

Obtenez tous les «documents» de la «collection» MongoDB

J'ai besoin de récupérer tous les documents qui se trouvent dans ma collection dans MongoDB, mais je ne sais pas comment. J'ai déclaré ma "collection" comme ça-

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

Et j'ai suivi ce qui est expliqué dans this Tutoriel MongoDB. Je l'ai ajusté à mes besoins, comme-

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

Cependant, je continue d'avoir l'erreur suivante-

MongoDB.Driver.IMongoCollection n'a pas de définition pour "Find" et le meilleur remplacement de la méthode d'extension [superlong stuff]. La recherche contient des arguments non valides.

24
NicolasR

En utilisant la version actuelle du pilote (v2.0), vous pouvez le faire en passant un filtre qui correspond à tout:

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

Ils ont également ajouté un filtre vide ( FilterDefinition.Empty ) qui arrivera dans la prochaine version du pilote (v2.1):

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

Manière la plus simple

Récupérez tous les documents-

var documents = SpeCollection.AsQueryable();

Convertissez également en JSON object-

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

Si vous voulez tous les documents, pourquoi ne pas utiliser Find all?

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