在mongodb中获取新的集合在mongodb c#driver中不起作用

时间:2013-12-30 11:14:11

标签: c# mongodb

考虑以下代码:

static void Main(string[] args)
{
    MongoClient mongo = new MongoClient();
    var mongoServer = mongo.GetServer();
    mongoServer.Connect();
    var db = mongoServer.GetDatabase("Shelf", WriteConcern.Unacknowledged);

    mongoServer.RequestStart(db);
    db.GetCollection("Book" + 1).Insert(new BsonDocument
                          {
                              {"_id", ObjectId.GenerateNewId(DateTime.Now)},
                              {
                                  "Properties", new BsonDocument
                                                {
                                                    {"title", "qwd"},
                                                    {"author", "a good writer1"},
                                                }
                              },
                              {"ISBN", "23423525"},
                          });

    db.GetCollection("Book" + 2).Insert(new BsonDocument
                          {
                              {"_id", ObjectId.GenerateNewId(DateTime.Now)},
                              {
                                  "Properties", new BsonDocument
                                                {
                                                    {"title", "qwdqw"},
                                                    {"author", "a good writer2"},
                                                }
                              },
                              {"ISBN", "23423525"},
                          });

    mongoServer.RequestDone();
}

我在我的程序中使用MongoDb C#驱动程序。在第一次运行上面的代码之后,我只在Book1 Db中创建Shelf而不是另一个集合,尽管在执行期间没有异常提升。通过进一步执行此代码,还可以创建其他集合。为什么MongoDb C#驱动程序的行为与此类似,我的代码有什么问题?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为问题出在WriteConcern.Unacknowledged。您应该将其更改为WriteConcern.Acknowledged。您不会等到写入请求发送到mongod。 你也可以检查这个问题的期刊选项。