2013-05-19 6 views
0

Je viens de commencer à utiliser MongoDB et avez une question ... Comment puis-je effectuer les opérations suivantes:C# MongoDB plusieurs enregistrements similaires

var testrec = new TestClass 
{ 
    Name = "John", 
    Address = "10 Here St", 
    RecordType = "A" 
}; 

db.Save(testrec); 

testrec.RecordType = "B"; 
db.Save(testrec); 

Je veux la deuxième Enregistrer pour enregistrer un nouveau document afin qu'il devrait y avoir 2 documents avec les mêmes détails sauf pour RecordType.

Ce qui semble se produire est qu'il remplace simplement le premier document par le second.

Quelqu'un peut-il s'il vous plaît laissez-moi savoir.

Merci Dean

+0

Utilisez-vous une interface C# ou le shell JavaScript Mongo? – Thilo

Répondre

0

Vous avez juste besoin de créer un nouvel ID et il va insérer au lieu de mettre à jour. Voici un exemple complet:

using System; 
using MongoDB.Bson; 
using MongoDB.Driver; 

namespace MongoTest 
{ 
    class TestClass{ 
     public string Name; 
     public string Address; 
     public string RecordType; 
     public ObjectId Id; 
    } 

    class MainClass 
    { 
     public static void Main (string[] args) 
     { 
      var connectionString = "mongodb://localhost"; 
      var client = new MongoClient(connectionString); 
      var server = client.GetServer(); 
      var db = server.GetDatabase("test"); 
      var collection = db.GetCollection("test"); 

      var testrec = new TestClass 
      { 
       Name = "John", 
       Address = "10 Here St", 
       RecordType = "A", 
       Id = new ObjectId() 
      }; 

      collection.Save(testrec); 
      testrec.Id = new ObjectId(); 
      testrec.RecordType = "B"; 
      collection.Save(testrec); 
      testrec.Id = new ObjectId(); 
      testrec.RecordType = "C"; 
      collection.Save(testrec); 
     } 
    } 
} 
0

Lorsque vous enregistrez le premier document, il se voit assigner un _id.

Lorsque vous enregistrez un document avec un _id existant, il s'agit d'une mise à jour.

Pour insérer un nouveau document, soit copier tous les champs (sans _id) dans une nouvelle structure de données ou unset _id qui a été généré avant.

Questions connexes