日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Adhesive框架系列文章--Mongodb数据服务使用实践

發(fā)布時(shí)間:2024/4/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Adhesive框架系列文章--Mongodb数据服务使用实践 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在此文中,我們會(huì)實(shí)踐一下,如何使用Mongodb數(shù)據(jù)服務(wù)存儲(chǔ)新的自定義數(shù)據(jù)。之前我們說(shuō)過(guò)了,使用Mongodb數(shù)據(jù)服務(wù)只有4步這么簡(jiǎn)單:

1)定義實(shí)體

2)定義元數(shù)據(jù)

3)配置Mongodb數(shù)據(jù)服務(wù)

4)調(diào)用API插入數(shù)據(jù)

在這里,我們希望使用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 = "時(shí)間", 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 = "狀態(tài)變化", 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)時(shí)間,顯示在表格視圖中,倒序排列,倒序索引

5)借書者,顯示在表格視圖中,可以通過(guò)文本框進(jìn)行搜索,索引

6)狀態(tài)變化,顯示在表格視圖中,這是一個(gè)枚舉,可以通過(guò)下拉列表進(jìn)行搜索,索引

7)書籍分類,顯示在表格視圖中,可以通過(guò)復(fù)選框進(jìn)行搜索,索引

8)備注,不顯示在表格視圖中

并且,我們把這個(gè)實(shí)體存放在名為Test的分類中,數(shù)據(jù)庫(kù)名也就是為Test__Book__年月(分庫(kù))。

?

在定義了數(shù)據(jù)之后只需調(diào)用API插入數(shù)據(jù)即可:

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

前臺(tái):

部門<asp:DropDownList ID="DeptName" runat="server"><asp:ListItem>Tech</asp:ListItem><asp:ListItem>Sales</asp:ListItem><asp:ListItem>Market</asp:ListItem></asp:DropDownList>&nbsp;狀態(tài)<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">技術(shù)書</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>

?

之前我們說(shuō)過(guò),為了安全考慮,如果要把數(shù)據(jù)提交到Mongodb數(shù)據(jù)服務(wù)中,必須在配置服務(wù)中進(jìn)行配置,把類型注冊(cè)進(jìn)去,打開(kāi)配置后臺(tái):

進(jìn)入全局配置中的Mongodb服務(wù)配置(也就是客戶端配置),進(jìn)入配置項(xiàng)列表,增加一項(xiàng):

名字填寫類型的完整名,比如Adhesive.Test.WebApp.Book,然后修改類型完整名也為Adhesive.Test.WebApp.Book:

這就完成了客戶端的配置,同樣對(duì)于服務(wù)端,進(jìn)入Mongodb服務(wù)端配置節(jié)點(diǎn),再進(jìn)入服務(wù)配置列表

增加一項(xiàng),命名為Adhesive.Test.WebApp.Book,然后修改類型完整名也為Adhesive.Test.WebApp.Book:

這里大部分配置和客戶端配置差不多,可以從“是否提交到數(shù)據(jù)庫(kù)”這個(gè)配置看出這是服務(wù)端的配置。并且可以看到,服務(wù)端使用8個(gè)線程來(lái)提交數(shù)據(jù),而客戶端只有一個(gè)線程。

至此,我們就可以打開(kāi)前臺(tái)提交數(shù)據(jù)了:

插入一些數(shù)據(jù)后到后臺(tái)查看:

點(diǎn)擊進(jìn)入列表視圖:

我們插入了三條記錄,由于我們?cè)诹猩隙x過(guò)搜索的規(guī)則,我們可以打開(kāi)高級(jí)數(shù)據(jù)篩選:

比如,我們只查看狀態(tài)變化是借出的記錄:

我們?cè)偬砑訋讞l記錄,借書者其它名字:

來(lái)嘗試搜索一下陳鋒借出書籍的記錄:

結(jié)果正式我們需要的!

?

當(dāng)然,分組統(tǒng)計(jì)和數(shù)據(jù)量統(tǒng)計(jì)功能也同樣可用:

?

數(shù)據(jù)想怎么看就怎么看!

?

不需要考慮數(shù)據(jù)提交時(shí)的異步隊(duì)列、不需要考慮數(shù)據(jù)的索引、不需要考慮數(shù)據(jù)的分表分庫(kù)、不需要考慮數(shù)據(jù)呈現(xiàn)后臺(tái)、不需要考慮實(shí)現(xiàn)配置,只需要寫自己的業(yè)務(wù)邏輯代碼,一切交給Mongodb數(shù)據(jù)服務(wù)。其實(shí)Mongodb數(shù)據(jù)服務(wù)主要用來(lái)存對(duì)內(nèi)的非業(yè)務(wù)邏輯的日志、統(tǒng)計(jì)和狀態(tài)數(shù)據(jù),因?yàn)橥ㄓ玫臄?shù)據(jù)后臺(tái)完全可以滿足我們的需求。在下一篇文章中,我們會(huì)介紹如何針對(duì)新的數(shù)據(jù)進(jìn)行報(bào)警的配置。

總結(jié)

以上是生活随笔為你收集整理的Adhesive框架系列文章--Mongodb数据服务使用实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。