连接到mongodb sing C#quick tour不创建数据库或集合

连接到mongodb sing C#quick tour不创建数据库或集合,c#,mongodb,C#,Mongodb,这是我第一次通过考试。特别是2.4版本 我在192.168.1.50地址创建了一个新的mongodb实例,它似乎运行正常 MongoDB文档给出了以下示例: var client = new MongoClient("mongodb://192.168.1.50:27017"); #It's ok if the database doesn't yet exist. It will be created upon first use var database = client.GetDatab

这是我第一次通过考试。特别是2.4版本

我在192.168.1.50地址创建了一个新的mongodb实例,它似乎运行正常

MongoDB文档给出了以下示例:

var client = new MongoClient("mongodb://192.168.1.50:27017");
#It's ok if the database doesn't yet exist.  It will be created upon first use
var database = client.GetDatabase("testDB");
#It’s ok if the collection doesn’t yet exist. It will be created upon first use.
var collection = database.GetCollection<BsonDocument>("testCollection");
我使用

show dbs
输出仅为

admin 0.000GB
local 0.000GB
我还应该做些什么来完成这项工作吗?我在try/catch上没有发现错误,而且它似乎运行良好


故障排除

到目前为止,我已经确认mongodb正在通过以下方式运行:

netstat -plntu
显示mongod在27017上以侦听状态运行



我还想知道mongodb服务器上是否有查看实时连接的方法,这样我就可以知道它是否真的成功连接。

问题是,为了持久保存创建的数据库,您需要创建几乎一个集合(奇怪吧?),我用robomongo对其进行了测试,并以这种方式工作

问题是
GetCollection
方法没有创建目标集合,您可以尝试使用以下代码:

    static void Main(string[] args)
    {
        var client = new MongoClient("mongodb://192.168.1.50:27017");
        //# It's ok if the database doesn't yet exist.  It will be created upon first use
        var database = client.GetDatabase("test");
        //# It’s ok if the collection doesn’t yet exist. It will be created upon first use.

        string targetCollection = "testCollection";
        bool alreadyExists = database.ListCollections().ToList().Any(x => x.GetElement("name").Value.ToString() == targetCollection);

        if (!alreadyExists)
        {
            database.CreateCollection(targetCollection);
        }

        var collection = database.GetCollection<BsonDocument>(targetCollection);

    }
static void Main(字符串[]args)
{
var客户端=新的MongoClient(“mongodb://192.168.1.50:27017");
//#如果数据库还不存在就可以了。它将在首次使用时创建
var database=client.GetDatabase(“测试”);
//#如果集合尚不存在,则可以。它将在首次使用时创建。
字符串targetCollection=“testCollection”;
bool alreadyExists=database.ListCollections().ToList().Any(x=>x.GetElement(“name”).Value.ToString()==targetCollection);
如果(!alreadyExists)
{
database.CreateCollection(targetCollection);
}
var collection=database.GetCollection(targetCollection);
}

事实证明,我找到的关于如何设置多个bindIp的方法是不正确的。问题根本不在C#身上。我找到了解决办法

为了防止这种情况消失,以下是我必须遵循的多个ip的当前设置

编辑文件/etc/mongod.conf

将逗号分隔的IP用括号括起来

bindIp = [127.0.0.1, 192.168.184.155, 96.88.169.145]

我的原始代码运行得很好,只是bindIp上没有括号。

这似乎对我也不起作用。它挂在
bool-alreadyExists
上,永远不会返回。结果表明,我的错误是mongodb端的一个配置。我的原始代码有效,但你的代码也有效。谢谢你的帮助
bindIp = [127.0.0.1, 192.168.184.155, 96.88.169.145]