考虑以下代码:
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#驱动程序的行为与此类似,我的代码有什么问题?提前谢谢。
答案 0 :(得分:0)
我认为问题出在WriteConcern.Unacknowledged
。您应该将其更改为WriteConcern.Acknowledged
。您不会等到写入请求发送到mongod。
你也可以检查这个问题的期刊选项。