2015-01-30 3 views
0

Я не знаком с mongodb много, и мне нравятся документы, ориентированные на базы данных. Мое приложение имеет следующие классы бизнес-объекта:Mongo DB обновить вложенный объект с использованием Mongo C# Драйвер

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; } 
} 

Это мой Context класс

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"); 
     } 
    } 
} 

Когда я хочу, чтобы обновить определенную «Элемент» объект по идентификатору, который вложен внутри объекта «ItemCategory», как я должен сделать это.

+0

Что вы хотите обновить? – Disposer

ответ

-1

Сначала вы должны найти вам целевой документ с помощью Query класса, то вы должны использовать Update класс, чтобы обновить документ

В моем примере я обновил CategoryName свойство документа от "old name" к "new category name"

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», как мне это сделать? –

+0

поместить образец документа и ваш желаемый результат в ваш вопрос – Disposer

Смежные вопросы