如何在C#中获取IMongoCollection中的所有项目?

iwa*_*itu 12 c# mongodb

var users = database.GetCollection<ApplicationUser>("users");
Run Code Online (Sandbox Code Playgroud)

FindAllMongodb.driver 2.0中没有任何功能.

Xtr*_*tes 9

你应该找到像空的过滤器一样 users.Find(new BsonDocument()).ToListAsync();


Ale*_*ndr 7

丑陋直白的方法:

await (await users.FindAsync(_ => true)).ToListAsync()
Run Code Online (Sandbox Code Playgroud)

  • 问题是因为 mongo 新驱动程序已更改语法,但现有的 exmaples 已过时 (2认同)

Rah*_*thi 0

您可以使用 LINQ

var collection = _db.GetCollection("users");
return (from x in collection.AsQueryable()
         select x["something"]).toList();
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是 Mongo Driver 2.7 版本附近的某个位置,则可以编译以下查询。(另请注意,Users 的通用参数在这里是多余的)

List<string> q2=(from x in collection.AsQueryable<users>() select x.Name).ToList();
Run Code Online (Sandbox Code Playgroud)

  • 在 mongodb 驱动程序 2.0 中, GetCollection 将返回 IMongoCollection&lt;T&gt; , IMongoCollection&lt;T&gt; 中没有 AsQueryable() 方法 (5认同)