在此文中,我們會實踐一下,如何使用Mongodb資料服務存儲新的自定義資料。之前我們說過了,使用Mongodb資料服務隻有4步這麼簡單:
1)定義實體
2)定義中繼資料
3)配置Mongodb資料服務
4)調用API插入資料
在這裡,我們希望使用Mongodb存放書籍借閱的資訊:
public enum Status
{
借出 = 1,
歸還 = 2,
丢失 = 3,
}
[MongodbPersistenceEntity("Test", DisplayName = "書籍借閱資訊", Name = "Book")]
public class Book
{
[MongodbPersistenceItem(MongodbIndexOption = MongodbIndexOption.AscendingAndUnique, IsPrimaryKey = true)]
[MongodbPresentationItem(ShowInTableView = true, DisplayName = "主鍵")]
public string ID { get; set; }
[MongodbPersistenceItem(IsTableName = true)]
[MongodbPresentationItem(DisplayName = "部門", ShowInTableView = true)]
public string DeptName { get; set; }
[MongodbPersistenceItem(MongodbIndexOption = MongodbIndexOption.Descending, IsTimeColumn = true, ColumnName = "T")]
[MongodbPresentationItem(MongodbSortOption = MongodbSortOption.Descending, DisplayName = "時間", ShowInTableView = true)]
public DateTime ServerTime { get; set; }
[MongodbPresentationItem(DisplayName = "書名", ShowInTableView = true)]
public string Name { get; set; }
[MongodbPersistenceItem(MongodbIndexOption = MongodbIndexOption.Ascending)]
[MongodbPresentationItem(DisplayName = "借書者", ShowInTableView = true, MongodbFilterOption = MongodbFilterOption.TextBoxFilter)]
public string UserName { get; set; }
[MongodbPersistenceItem(MongodbIndexOption = MongodbIndexOption.Ascending)]
[MongodbPresentationItem(DisplayName = "狀态變化", ShowInTableView = true, MongodbFilterOption = MongodbFilterOption.DropDownListFilter)]
public Status Status { get; set; }
[MongodbPersistenceItem(MongodbIndexOption = MongodbIndexOption.Ascending)]
[MongodbPresentationItem(DisplayName = "書籍分類", ShowInTableView = true, MongodbFilterOption = MongodbFilterOption.CheckBoxListFilter)]
public string Category { get; set; }
[MongodbPresentationItem(DisplayName = "備注")]
public string Memo { get; set; }
}
其中包含:
1)主鍵ID,顯示在表格視圖中,做唯一索引
2)部門名,顯示在表格視圖中,作為表名
3)書名,顯示在表格視圖中
4)時間,顯示在表格視圖中,倒序排列,倒序索引
5)借書者,顯示在表格視圖中,可以通過文本框進行搜尋,索引
6)狀态變化,顯示在表格視圖中,這是一個枚舉,可以通過下拉清單進行搜尋,索引
7)書籍分類,顯示在表格視圖中,可以通過複選框進行搜尋,索引
8)備注,不顯示在表格視圖中
并且,我們把這個實體存放在名為Test的分類中,資料庫名也就是為Test__Book__年月(分庫)。
在定義了資料之後隻需調用API插入資料即可:
var book = new Book()
{
DeptName = DeptName.SelectedValue,
ID = Guid.NewGuid().ToString(),
Memo = Memo.Text,
UserName = UserName.Text,
ServerTime = DateTime.Now,
Name = BookName.Text,
Status = (Status)Enum.Parse(typeof(Status), Status.SelectedValue),
Category = BookCategory.Text
};
MongodbService.MongodbInsertService.Insert(book);
前台:
部門
<asp:DropDownList ID="DeptName" runat="server">
<asp:ListItem>Tech</asp:ListItem>
<asp:ListItem>Sales</asp:ListItem>
<asp:ListItem>Market</asp:ListItem>
</asp:DropDownList>
狀态
<asp:DropDownList ID="Status" runat="server">
<asp:ListItem>借出</asp:ListItem>
<asp:ListItem>歸還</asp:ListItem>
<asp:ListItem>丢失</asp:ListItem>
</asp:DropDownList>
分類
<asp:TextBox ID="BookCategory" runat="server">技術書</asp:TextBox>
書名
<asp:TextBox ID="BookName" runat="server">《喬布斯傳》</asp:TextBox>
借書者
<asp:TextBox ID="UserName" runat="server">朱晔</asp:TextBox>
備注
<asp:TextBox ID="Memo" runat="server">是一本好書</asp:TextBox>
之前我們說過,為了安全考慮,如果要把資料送出到Mongodb資料服務中,必須在配置服務中進行配置,把類型注冊進去,打開配置背景:

進入全局配置中的Mongodb服務配置(也就是用戶端配置),進入配置項清單,增加一項:
名字填寫類型的完整名,比如Adhesive.Test.WebApp.Book,然後修改類型完整名也為Adhesive.Test.WebApp.Book:
這就完成了用戶端的配置,同樣對于服務端,進入Mongodb服務端配置節點,再進入服務配置清單
增加一項,命名為Adhesive.Test.WebApp.Book,然後修改類型完整名也為Adhesive.Test.WebApp.Book:
這裡大部配置設定置和用戶端配置差不多,可以從“是否送出到資料庫”這個配置看出這是服務端的配置。并且可以看到,服務端使用8個線程來送出資料,而用戶端隻有一個線程。
至此,我們就可以打開前台送出資料了:
插入一些資料後到背景檢視:
點選進入清單視圖:
我們插入了三條記錄,由于我們在列上定義過搜尋的規則,我們可以打開進階資料篩選:
比如,我們隻檢視狀态變化是借出的記錄:
我們再添加幾條記錄,借書者其它名字:
來嘗試搜尋一下陳鋒借出書籍的記錄:
結果正式我們需要的!
當然,分組統計和資料量統計功能也同樣可用:
資料想怎麼看就怎麼看!
不需要考慮資料送出時的異步隊列、不需要考慮資料的索引、不需要考慮資料的分表分庫、不需要考慮資料呈現背景、不需要考慮實作配置,隻需要寫自己的業務邏輯代碼,一切交給Mongodb資料服務。其實Mongodb資料服務主要用來存對内的非業務邏輯的日志、統計和狀态資料,因為通用的資料背景完全可以滿足我們的需求。在下一篇文章中,我們會介紹如何針對新的資料進行報警的配置。
作者:
lovecindywang本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。