2013-05-19 55 views
0

我一直在使用MongoDB的剛剛開始,有一個問題...我怎麼做到以下幾點:C#MongoDB的多個類似的記錄

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

db.Save(testrec); 

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

我想第二保存,保存爲一個新的文件,所以應該2個文檔具有除RecordType以外的相同詳細信息。

似乎發生的是它只是覆蓋第一個文件。

有人可以讓我知道。

感謝 院長

+0

你使用的是C#接口還是Mongo Javascript shell? – Thilo

回答

0

你只需要新增另一個Id,它會插入而不是更新。這裏是一個完整的例子:

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

當您保存的頭文件,它就會被分配一個_id

當您使用現有的_id保存文檔時,這是一個更新。

要插入新文檔,請將所有字段(不含_id)複製到新的數據結構中,或者取消設置之前生成的_id