Adhesive架構系列文章–Mongodb資料服務使用實踐

來源:互聯網
上載者:User

在此文中,我們會實踐一下,如何使用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>        &nbsp;狀態        <asp:DropDownList ID="Status" runat="server">            <asp:ListItem>借出</asp:ListItem>            <asp:ListItem>歸還</asp:ListItem>            <asp:ListItem>丟失</asp:ListItem>        </asp:DropDownList>        &nbsp;分類        <asp:TextBox ID="BookCategory" runat="server">技術書</asp:TextBox>        &nbsp;書名        <asp:TextBox ID="BookName" runat="server">《喬布斯傳》</asp:TextBox>        &nbsp;借書者        <asp:TextBox ID="UserName" runat="server">朱曄</asp:TextBox>        &nbsp;備忘        <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資料服務主要用來存對內的非商務邏輯的日誌、統計和狀態資料,因為通用的資料後台完全可以滿足我們的需求。在下一篇文章中,我們會介紹如何針對新的資料進行警示的配置。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.