2015-05-26 17 views
13

Ich muss alle Dokumente abrufen, die in meiner Sammlung in MongoDB sind, aber ich kann nicht herausfinden, wie. Ich habe meine 'Sammlung' erklärt wie this-Erhalten Sie alle 'Dokumente' aus MongoDB 'Sammlung'

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

Und ich folgte, was in this MongoDB Tutorial erklärt. Ich stellte es für meine Bedürfnisse, wie-

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

Allerdings halte ich die folgende fehler-

MongoDB.Driver.IMongoCollection mit haben keine Definition für ‚Suchen‘ und die beste außer Kraft gesetzt die Erweiterungsmethode [superlanges Zeug]. Suchen enthält ungültige Argumente.

Antwort

28

die aktuelle Version des Treibers (v2.0) verwenden, können Sie das durch einen Filter geleitet, das alles passt:

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

Sie haben auch einen leeren Filter (FilterDefinition.Empty) hinzugefügt denen kommen in der nächsten Version des Treibers (v2.1):

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

Wenn Sie alle Dokumente benötigen, warum nicht Find all verwenden?

var documents = await SpeCollection.Find(new BsonDocument()).ToListAsync(); 
+1

Wenn Sie es vorziehen lambdas verwenden, um Json umgewandelt werden: ** erwarten SpeCollection.Find (f => true) .ToListAsync(); ** –

4

einfachste Weg, alle Dokumenten-

abrufen
var documents = SpeCollection.AsQueryable(); 

Es kann auch objekt-

var json = Json(documents, JsonRequestBehavior.AllowGet); 
Verwandte Themen