[英]Mongo DB update nested object using Mongo C# Driver
我對mongodb不太熟悉,而且我喜歡面向文檔的數據庫。 我的應用程序具有以下業務實體類:
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”實體中的ID更新特定的“ Item”實體時,該怎么辦。
首先,您應該通過
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.