2013-04-24 2 views
0

수집 상태가있는 mongo 서버가 있습니다. 새 상태가 추가 될 때마다 내 서버에 저장됩니다. 하지만 프런트 엔드에서 컬렉션을 편집하려고하면 다른 ID를 가진 내 서버에 다른 새로운 컬렉션으로 저장됩니다. 이것을 극복하는 방법.C#을 사용하여 mongodb 컬렉션을 업데이트하는 방법

 public static void CreateData(string pass ,string pass1) 
     { 

      string StateCode = pass; 
      string stateName = pass1; 
      insertState(StateCode, stateName); 

     } 



     private static void insertState(string StateCode, string stateName) 
     { 
     MongoServer server = MongoServer.Create(ConnectionString); 
     MongoDatabase myCompany = server.GetDatabase("BackOffice"); 

     MongoCollection<BsonDocument> tblStates = myCompany.GetCollection<BsonDocument>("tblStates"); 
     BsonDocument deptartment = new BsonDocument { 
        { "State_strCode", StateCode }, 
        { "State_strName", stateName }, 
        {"States_strIsActive","Y"}, 
        {"State_strFedExStateCode",""}, 
        {"State_dtmTimeStamp",DateTime.Now} 
        }; 
     tblStates.Insert(deptartment); 
     } 

답변

1

당신은 더 나은 구조를 정의하거나 PK 설정할 것 : 바로이

public void Update(Customer cus) 
    { 
     if (cus != null) 
     { 
      MongoDB.Driver.MongoClient client = new MongoClient(_connectionString); 
      MongoDatabase db = client.GetServer().GetDatabase(_dbName); 
      db.GetCollection(_dbName).Save(cus); 
     } 

    } 
+0

같은 개체를

public class Customer { public string name { get; set; } [MongoDB.Bson.Serialization.Attributes.BsonId] public string idCol { get; set; } } 

을 업데이트합니다. 다음은 문서입니다. http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/ – Andrei

+0

MongoCollection tblGenre = m ydb.GetCollection ("tblGenre") ; ; var query = 새 QueryDocument { { "Genre_strCode", GenericCode} }; var update = new UpdateDocument { { "$ set", 새 BsonDocument ("Genre_strName", GenerName)} }}; tblGenre.Update (query, update); – Aarthi

+0

내가 시도한 위의 코드는 바로 그 것이다. – Aarthi

관련 문제