Adhesive框架系列文章--Mongodb数据服务使用实践
在此文中,我們會實踐一下,如何使用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數據服務主要用來存對內的非業務邏輯的日志、統計和狀態數據,因為通用的數據后臺完全可以滿足我們的需求。在下一篇文章中,我們會介紹如何針對新的數據進行報警的配置。
總結
以上是生活随笔為你收集整理的Adhesive框架系列文章--Mongodb数据服务使用实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Live Writer和NNTP B
- 下一篇: windows 路由设置问题