2015-12-30 72 views
1

我有这样的代码:MongoDB的 - 无法插入记录

public async void SaveAuditLog(AuditLog a) 
{ 
    var db = new MongoDBContext(); 
    var o = db.GetMongoDatabase(Common.Common.MongoDbConnectionString); 

    var audit = o.GetCollection<AuditLog>("AuditLog"); 

    await audit.InsertOneAsync(a); 
} 

public IMongoDatabase GetMongoDatabase(string connectionstring) 
{ 
    MongoClient client = new MongoClient(connectionstring); 
    return client.GetDatabase("test"); 
} 

这是从web.config中的连接字符串:

<add connectionString="mongodb://localhost:27017" name="mongodb"></add> 

当我检查过robomongo的数据,它不显示我插入任何数据。

我曾尝试下面的代码,以及和没有数据被插入:

public async void SaveAuditLog(AuditLog a) 
{ 
    var client = new MongoClient(Common.Common.MongoDbConnectionString); 
    var o = client.GetDatabase("test"); 

    var audit = o.GetCollection<BsonDocument>("AuditLog"); 

    var document = new BsonDocument { {"Test", "test"} }; 

    await audit.InsertOneAsync(document); 
} 

我使用csharpdriver为蒙戈2.2。我究竟做错了什么?

+0

就我所见,您并未指定数据库名称,这可能是问题所在,然后发送给我。一探究竟。让我们知道。 –

+0

它在第二个方法client.GetDatabase(“测试”)中指定 – Baahubali

+0

我一定错过了它,对不起。 –

回答

1

发现数据被插入到mongodb中,并且robomongo版本0.8.5本身​​没有显示mongodb版本3及以上的集合/文档中的错误。

跑了一些脚本(在robomongo),它不返回数据:

db.stats() 

db.CollectionName.find() 

下载mongochef,它显示的数据,立竿见影。