我第一次通过mongoDB Driver Documentation Quick Tour。特别是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");
然而,当我进入我的服务器时,我进入mongo控制台
mongo
我使用
列出数据库show dbs
输出仅
admin 0.000GB
local 0.000GB
我还有什么办法让这项工作成功吗?我在try / catch上没有出现任何错误,看起来运行正常。
疑难解答
到目前为止,我已通过以下方式确认mongodb正在运行:
netstat -plntu
显示处于LISTEN状态的27017上运行的mongod。
我也有兴趣知道mongodb服务器上是否有办法查看实时连接,所以我可以看看它是否真的成功连接。
答案 0 :(得分:3)
问题是你需要创建几乎一个集合才能保留创建的数据库(奇怪吧?)我用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);
}
答案 1 :(得分:1)
事实证明,我找到的关于如何设置多个bindIp的方法是不正确的。问题根本不在于C#。我找到了解决方案here
如果它消失了,这里是我必须遵循的多个ip的当前设置
编辑文件 /etc/mongod.conf
用逗号分隔逗号分隔的Ips
foo.bar.baz = function() { ... }
我的原始代码运行正常,我在bindIp上没有括号。