web-dev-qa-db-ja.com

C#2.0ドライバーを使用してmongodbコレクションにデータを挿入する方法は?

  1. C#コンソールアプリケーションでMongoClientを使用してMongoDBに接続しています

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

  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<Entity>("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()
    

私のコードの何が問題になっていますか?

15
Chandan

これは、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<Entity>("entities");
    await collection.InsertOneAsync(new Entity { Name = "Jack" });
}
18
Chandan

その理由は、ストアがドキュメントを作成するのを待つ必要があるからです。この場合、collection.InsertOneAsync(entity);ドキュメントを作成する前に実行出口。

Console.ReadKey()またはcollection.InsertOneAsync(entiry).Wait()のいずれか、または他の形式の終了を数分の1秒間停止することで、トリックが実行されます。

7
Inba

.net 4.5以降のバージョンおよびmongodriver 2xシリーズの場合は、以下のコードに従います

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