如何使用c#2.0驱动程序将数据插入mongodb集合?

  1. 我在我的c#控制台应用程序中使用MongoClient连接到MongoDB

https://github.com/mongodb/mongo-csharp-driver/releases/tag/v2.0.0-rc0

  1. 我的代码

      class Program { static void Main(string[] args) { const string connectionString = "mongodb://localhost:27017"; // Create a MongoClient object by using the connection string var client = new MongoClient(connectionString); //Use the MongoClient to access the server var database = client.GetDatabase("test"); var collection = database.GetCollection("entities"); var entity = new Entity { Name = "Tom" }; collection.InsertOneAsync(entity); var id = entity._id; } } public class Entity { public ObjectId _id { get; set; } public string Name { get; set; } } 
  2. 成功运行上面的代码后,我无法使用此命令在MongoDB数据库中找到此记录:

     db.entities.find().pretty() 

我的代码出了什么问题?

这是我创建的用于将数据插入MongoDB的方法,现在工作正常。

 static async void DoSomethingAsync() { const string connectionString = "mongodb://localhost:27017"; // Create a MongoClient object by using the connection string var client = new MongoClient(connectionString); //Use the MongoClient to access the server var database = client.GetDatabase("test"); //get mongodb collection var collection = database.GetCollection("entities"); await collection.InsertOneAsync(new Entity { Name = "Jack" }); } 

原因是您需要等待商店创建文档。 在这种情况下collection.InsertOneAsync(entity); 创建文档之前的执行退出。

Console.ReadKey()或collection.InsertOneAsync(entiry).Wait()或任何其他forms的停止退出一小段时间都可以解决问题。

对于.net 4.5及更高版本和mongodriver 2x系列,请遵循以下代码

 var Client = new MongoClient(); var MongoDB = Client.GetDatabase("shop"); var Collec = MongoDB.GetCollection("computers"); var documnt = new BsonDocument { {"Brand","Dell"}, {"Price","400"}, {"Ram","8GB"}, {"HardDisk","1TB"}, {"Screen","16inch"} }; Collec.InsertOneAsync(documnt); Console.ReadLine(); 

来自inmongodb的参考