2015-01-30 4 views
0

저는 mongodb에 대해 많이 익숙하지 않아 문서 지향 데이터베이스를 좋아합니다. 나는 "ItemCategory"엔티티, 어떻게 내부에 중첩 된 ID에 의해 특정 "항목"개체를 업데이트 할 때Mongo DB는 Mongo C# Driver를 사용하여 중첩 객체를 업데이트합니다.

public class ItemCategory 
{ 
    [BsonRepresentation(BsonType.ObjectId)] 
    public string Id { get; set; } 
    public string CategoryName { get; set; } 
    public IList<Item> Items { get; set; } 
} 

public class Item 
{ 
    [BsonRepresentation(BsonType.ObjectId)] 
    public string Id { get; set; } 
    public string ItemName { get; set; } 

    [BsonRepresentation(BsonType.Double)] 
    public decimal UnitPrice { get; set; } 
} 

이 내 상황에 맞는 클래스

public class MongoDbContext 
{ 
    private MongoDatabase database; 

    public MongoDatabase Database 
    { 
     get { return database; } 
     set { database = value; } 
    } 

    public MongoDbContext() 
    { 
     var client = new MongoClient(Settings.Default.constr); 
     var server = client.GetServer(); 
     Database= server.GetDatabase(Settings.Default.db);    
    } 

    public MongoCollection<ItemCategory> ItemCategories 
    { 
     get 
     { 
      return Database.GetCollection<ItemCategory>("itemcategories"); 
     } 
    } 
} 

있습니다 : 내 응용 프로그램은 이러한 비즈니스 엔티티 클래스를 해야합니까?

+0

무엇을 업데이트 하시겠습니까? – Disposer

답변

-1

처음에는 당신이 Query 클래스를 통해 문서를 대상으로 찾아야한다, 당신은 내가 "new category name""old name"에서 문서의 CategoryName 속성을 업데이트 문서 내 샘플에서

를 업데이트 Update 클래스를 사용해야

var collection = database.GetCollection<ItemCategory>("itemcategories"); 

var query = Query.And(Query<ItemCategory>.EQ(c => c.Id, "id"), Query<ItemCategory>.EQ(c => c.CategoryName, "old name")); 
var update = Update<ItemCategory>.Set(c => c.CategoryName, "new category name"); 

collection.Update(query, update); 
+0

특정 "Item"엔티티를 "ItemCategory"엔티티에 중첩 된 Id로 업데이트하려고합니다. 어떻게해야합니까? –

+0

샘플 문서를 넣고 질문에 원하는 결과를 입력하십시오. – Disposer