2015-12-30 3 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 ("test") – Baahubali

+0

Должно быть, я пропустил это, извините. –

ответ

1

выяснил, что данные вставляются в mongodb, и есть ошибка в самой robomongo версии 0.8.5, которая не отображает коллекции/документы для mongodb версии 3 и выше.

провел несколько сценариев (в robomongo), которые действительно возвращают данные:

db.stats() 

db.CollectionName.find() 

загруженной mongochef и отображаются данные сразу.

Смежные вопросы