web-dev-qa-db-fra.com

Comment insérer des données dans une collection mongodb à l'aide du pilote c # 2.0?

  1. J'utilise MongoClient dans mon application console c # pour me connecter à MongoDB

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

  1. Mon code

      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. Après avoir exécuté avec succès le code ci-dessus, je ne trouve pas cet enregistrement dans la base de données MongoDB à l'aide de cette commande:

    db.entities.find().pretty()
    

Qu'est ce qui ne va pas avec mon code?

15
Chandan

C'est la méthode que j'ai créée pour insérer des données dans MongoDB, qui fonctionne bien maintenant.

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

La raison en est que vous devez attendre que le magasin crée le document. Dans ce cas, collection.InsertOneAsync (entité); la sortie d'exécution avant de créer le document.

Soit Console.ReadKey () ou collection.InsertOneAsync (entiry) .Wait () ou toute autre forme d'arrêt de la sortie pendant une fraction de seconde fera l'affaire.

7
Inba

pour .net 4.5 et versions supérieures et mongodriver 2x, suivez le code ci-dessous

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