首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MongoDB和C#Find()

MongoDB和C#Find()
EN

Stack Overflow用户
提问于 2019-01-04 04:42:06
回答 2查看 0关注 0票数 0

我有以下代码,我是mongodb的新手,我需要帮助找到集合中的特定元素。

代码语言:javascript
复制
using MongoDB.Bson;
using MongoDB.Driver;
namespace mongo_console    {

public class User    {
    public ObjectId Id { get; set; }
    public string name { get; set; }
    public string pwd { get; set; }
}
class Program    {
    static void Main(string[] args)
    {
        MongoClient client = new MongoClient();
        MongoServer server = client.GetServer();
        MongoDatabase db = server.GetDatabase("Users");
        MongoCollection<User> collection = db.GetCollection<User>("users");

        User user = new User
        {
            Id = ObjectId.GenerateNewId(),
            name = "admin",
            pwd = "admin"
        };
        User user2 = new User
        {
            Id = ObjectId.GenerateNewId(),
            name = "system",
            pwd = "system"
        };
        collection.Save(user);
        collection.Save(user2);

        /*
         * How do I collection.Find() for example using the name
         */
  }
}
}

一旦我找到了我想要打印的用户,那是可行的还是只能找回位置?如果是这样,我该如何打印?

我看过一些例子collection.Find(x => x.something),但我不知道x是什么或意思

EN

回答 2

Stack Overflow用户

发布于 2019-01-04 13:01:58

要查找记录,您可以在find中使用Lambda,例如:

代码语言:javascript
复制
var results = collection.Find(x => x.name == "system").ToList();

或者,您可以使用使用强类型Lambda或文本的构建器:

代码语言:javascript
复制
var filter = Builders<User>.Filter.Eq(x => x.name, "system")

要或者

代码语言:javascript
复制
var filter = Builders<User>.Filter.Eq("name", "system")

然后使用如上所述的find

代码语言:javascript
复制
var results = collection.Find(filter).ToList();

然后只需循环并打印结果

票数 0
EN

Stack Overflow用户

发布于 2019-01-04 14:38:47

它也根据我们使用的.Net框架版本而变化。如果我们使用2x驱动程序,它应该看起来像:

代码语言:javascript
复制
var list = await collection.Find(new BsonDocument()).ToListAsync();

方法2

代码语言:javascript
复制
await collection.Find(new BsonDocument()).ForEachAsync(X=>Console.WriteLine(X));

参考例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档