web-dev-qa-db-ja.com

MongoDBの「コレクション」からすべての「ドキュメント」を取得する

MongoDBのコレクションにあるすべてのドキュメントを取得する必要がありますが、その方法を理解できません。このように「コレクション」を宣言しました

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

そして、 this MongoDBチュートリアルで説明されていることに従いました。私のニーズに合わせて調整しました

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

ただし、次のエラーが引き続き発生します。

MongoDB.Driver.IMongoCollectionには 'Find'の定義がなく、拡張メソッド[superlong stuff]の最適なオーバーライドがありません。 Findに無効な引数が含まれています。

24
NicolasR

現在のバージョンのドライバー(v2.0)を使用すると、すべてに一致するフィルターを渡すことでそれを行うことができます。

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

また、空のフィルター( FilterDefinition.Empty )次のバージョンのドライバー(v2.1)で届きます:

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

最も簡単な方法

すべてのドキュメントを取得します-

var documents = SpeCollection.AsQueryable();

また、JSONオブジェクトに変換します-

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

すべてのドキュメントが必要な場合は、Find all

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