如何在使用mongo csharp插入后获取rcently插入文档的_id?

我能够使用以下代码成功插入新文档,但我无法获取新插入文档的_id。

插入后,user为null。 谢谢!

MongoServer server = MongoServer.Create(); MongoDatabase test = server.GetDatabase("Test"); MongoCollection users = test.GetCollection("Users"); BsonDocument user = new BsonDocument(); user.Add("FirstName", "John"); user.Add("LastName", "Michael"); user.Add("Address", "123 Main Street"); user.Add("City", "Newport Beach"); user.Add("State", "CA"); user.Add("ZipCode", "92660"); user.Add("Email", "John.Michael@myemail.com"); user.Add("CreatedDate", DateTime.Now); user.Add("IPAddress", "10.1.1.1"); user = users.Save(user); string idSTring = user["_id"].ToString().Replace("\"", ""); 

我用官方驱动程序做了一些测试,发现MongoCollection.Save方法返回null; 因此,不要将结果分配给构造的用户:

 //user = users.Save(user); users.Save(user); string idStr = user["_id"].ToString(); Console.WriteLine("_id == {0}", idStr); 

关于司机检查这个和这个

使用此C#驱动程序 ,您的代码将如下所示:

  var refMongo = new Mongo(); refMongo.Connect(); var test = refMongo.GetDatabase("Test"); var users = test.GetCollection("Users"); var user = new MongoDB.Document(); user.Add("FirstName", "John"); user.Add("LastName", "Michael"); user.Add("Address", "123 Main Street"); user.Add("City", "Newport Beach"); user.Add("State", "CA"); user.Add("ZipCode", "92660"); user.Add("Email", "John.Michael@myemail.com"); user.Add("CreatedDate", DateTime.Now); user.Add("IPAddress", "10.1.1.1"); users.Save(user); string idSTring = user["_id"].ToString(); Console.WriteLine(idSTring); 

我得到了_id == 4cd9e240df53ca112c000001

祝好运!;)