C# 在使用mongo csharp进行插入后,如何获取插入文档的_id?

C# 在使用mongo csharp进行插入后,如何获取插入文档的_id?,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我能够使用以下代码成功插入新文档,但无法获取新插入文档的_id 插入后,用户为空。谢谢大家! MongoServer server = MongoServer.Create(); MongoDatabase test = server.GetDatabase("Test"); MongoCollection<BsonDocument> users = test.GetCollection("Users"); BsonDocument user = new BsonDocument(

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

插入后,用户为空。谢谢大家!

MongoServer server = MongoServer.Create();
MongoDatabase test = server.GetDatabase("Test");

MongoCollection<BsonDocument> 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("\"", "");
MongoServer服务器=MongoServer.Create();
MongoDatabase test=server.GetDatabase(“test”);
MongoCollection用户=test.GetCollection(“用户”);
BsonDocument user=新的BsonDocument();
添加(“名字”、“约翰”);
添加(“姓氏”、“迈克尔”);
用户。添加(“地址”,“123大街”);
用户。添加(“城市”、“新港海滩”);
添加(“州”、“CA”);
添加(“ZipCode”,“92660”);
添加(“电子邮件”,“约翰”。Michael@myemail.com");
添加(“CreatedDate”,DateTime.Now);
添加(“IP地址”、“10.1.1.1”);
用户=用户。保存(用户);
string idSTring=user[“\u id”].ToString().Replace(“\”,”);
使用,您的代码如下:

        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


祝你好运!;)

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

//user = users.Save(user);
users.Save(user);

string idStr = user["_id"].ToString();

Console.WriteLine("_id == {0}", idStr);

关于驱动程序检查和

谢谢。这会起作用,但我真的想找到一种使用官方驱动程序而不是samus的驱动程序来实现这一点的方法。:)这与官方驱动程序和BSondocument一起工作。ObjectId的创建是在客户机上完成的,而不是在服务器上完成的,所以这应该是完全可能的。对c#驱动程序了解不够,因此不过我还是帮了你,对不起:(我昨晚在代码上又弄乱了一些东西,实际上也得出了相同的结论。谢谢!