时间:2019-04-01 标签:c#mongodb database collection find

Posted

技术标签:

【中文标题】时间:2019-04-01 标签:c#mongodb database collection find【英文标题】:c# mongodb database collection find 【发布时间】:2021-10-27 09:09:59 【问题描述】:

我有一个asp.net mvc网站。我将连接到mongodb云数据库并进行crud操作。我使用 actionresult 中的外部类链接来执行此操作。

public ActionResult Example(data d)
    
        var client = new MongoClient(
    "mongodb+srv://username:password@server_source_name/databasename?retryWrites=true&w=majority"
);
        var database = client.GetDatabase("database_name");
        var collection = database.GetCollection<data>("collection_name");
        var result =collection.Find(x => x.example == "ABC").ToList();
        return Content(result.ToString());
    

源代码中的data.css:

public class data

    [BsonId]
    public ObjectId _id  get; set;

    [BsonElement("example")]
    public string example  get; set; 

    [BsonElement("example_1")]
    public string example_1  get; set; 

    [BsonElement("example_2")]
    public string example_2  get; set; 


用户名和密码是正确的,我确定是因为当你执行database.toString()时,它显示的名称与mongodb中的名称匹配。

完整的错误文本:

命令 saslContinue failed: bad auth : Authentication failed..

错误结果图片:

【问题讨论】:

用户名/密码中是否有任何可能无法在 URL 中正确解析的非字母数字或非 ascii 字符? 用户名密码全字。连接字符串也是如此。反正如果其中一个出了故障,难道就不需要建立数据库连接了吗? 【参考方案1】:

Authentication failed 表示服务器收到凭据,但它们与服务器存储的内容不匹配。

凭证有 3 个部分:用户名、密码和数据库。当记录失败的身份验证尝试时,mongod 日志将报告为 username@databasename,因此您可以检查它使用的是什么。

如果您没有显式传递数据库进行身份验证,mongod 服务器将使用您要连接的数据库名称。

&amp;authSource=admin 添加到连接字符串以显式使用存储在管理数据库中的用户凭据。

【讨论】:

以上是关于时间:2019-04-01 标签:c#mongodb database collection find的主要内容,如果未能解决你的问题,请参考以下文章

时间:2019-04-01 标签:c#com object can't get ref object values

时间:2019-04-01 标签:c#mongodb database collection find

时间:2019-04-01 标签:c#dllimport parameters shift

时间:2019-04-01 标签:c#swagger openapi erronous refs when nested classes

[Intern][2019.04.01]Linux 学习心得

命令安装mongod作为服务启动