2014-06-05 4 views
0

Я написал небольшой инструмент, чтобы опробовать MongoDB. Он генерирует класс, который содержит случайное количество подклассов и подклассов (в определенных пределах, конечно), поэтому у меня есть некоторые данные.MongoDB не вставляет второй документ в коллекцию (драйвер C#)

Когда я пытаюсь вставить данные в коллекцию, он работает в первый раз, когда создается коллекция. Всякий раз, когда я пытаюсь вставить другой экземпляр этого класса в эту существующую коллекцию, ничего не происходит. Никакое исключение не выбрасывается, и сервер mongo, похоже, ничего не делает.

public WriteConcernResult InsertData(MyClass instance, string collection) 
    { 
     if (DbDatabase.GetCollection(collection) != null) 
     { 
      WriteConcernResult result; 

      try 
      { 
       result = DbDatabase.GetCollection(collection).Insert(instance); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
       result = null; 
      } 

      return result; 
     } 

     return null; 
    } 

Я использую это неправильно? Как я могу узнать, что происходит с данными?

редактировать: Это результат WriteConcernResult:

{ "ОК": 1, "п": NumberLong (0)}

+0

Не могу сказать. Недостаточно кода здесь, чтобы показать, что вы на самом деле делаете. Измените пожалуйста. –

+0

Извините, добавлено еще несколько методов тестирования. –

+0

- ваш генерируемый ключ или пользовательский ключ? – thumbmunkeys

ответ

0

Там еще не достаточно обеспечены код чтобы ответить на ваш вопрос. Можете ли вы предоставить отдельный образец, который воспроизводит проблему?

Например, следующая автономная программа правильно вставляет два документа. Можете ли вы попробовать изменить его, чтобы воспроизвести то, что вы видите?

public static class Program 
{ 
    public static void Main(string[] args) 
    { 
     var client = new MongoClient("mongodb://localhost"); 
     var server = client.GetServer(); 
     var database = server.GetDatabase("test"); 
     var collection = database.GetCollection("test"); 

     collection.Drop(); 
     collection.Insert(new BsonDocument("_id", 1)); 
     collection.Insert(new BsonDocument("_id", 2)); 
    } 
} 
Смежные вопросы