在MVC中實現MongoDB的分頁查詢

2021-08-07 19:00:38 字數 1802 閱讀 6042

使用的mongodb net 驅動是:mongodb.driver.2.4.4

首先確定的是mongodb的bsondocument結構:

var document = new bsondocument ,

,, } },

};

其中,operation 中的bsondocument中的key,value鍵值對是可變長的,也就是說,不一定都是2個,根據需要,可能是2個,也可能是3個,4個等。

mvc的action實現:

public actionresult adminloglist(string name = "", datetime? start = null, datetime? end = null, int pageindex = 1, int pagesize = 10)

if (start.isnotnullandempty())

if (end.hasvalue)

var sort = builders.sort.descending("createtime");

var documents = collection.find(filter).sort(sort).tolist();

var query = documents.topagedlist(pageindex, pagesize);

return view(query);

}

查詢條件,乙個name,可以進行模糊查詢,乙個開始日期,乙個結束日期。按定義的bsondocument 文件中的createtime鍵進行降序排列。

以下是cshtml中的相關**,可能是都覺得cshtml中的實現**很簡單,因此我在網上搜尋n遍,找不到相關實現**。而對於我這樣第一次實現 mongodb 查詢的人來說,根本不知道如何實現。所以我列出了我的實現。

頭部部分:

@model  pagedlist.ipagedlist@using mongodb.bson;

@using pagedlist.mvc;

查詢部分:

@using (html.beginform(viewcontext.routedata.values["action"].tostring(), viewcontext.routedata.values["controller"].tostring(), formmethod.post, new ))

列表及分頁實現部分,這部分感覺最難,各種嘗試,最終實現:

操作員

登入ip

操作

時間

@foreach (var item in model)

@html.pagedlistpager(model, page => url.action(viewcontext.routedata.values["action"].tostring(), new ),

new pagedlistrenderoptions

/頁",

displayitemsliceandtotal = true,

itemsliceandtotalformat = "共條記錄"

})

操作部分json分解實現原始碼:

$(function () );

self.html(str);

});});

在MongoDB中實現樂觀併發控制

說起來,自從接觸了mongodb以後,我在大小專案中就再也沒有接觸過關係型資料庫了。效能倒不是什麼主要問題,主要是方便,例如我可以在mongodb中直接儲存陣列,然後把其中的元素當作查詢條件,而在關係型資料庫中,則需要使用額外的 然後再join等等。當然,在mongodb中很難進行join,於是對於...

在MVC中處理異常的總結

無論是桌面程式還是web程式,異常處理都是必須的.一般的處理方式是,捕獲異常,然後記錄異常的詳細資訊到文字檔案或者資料庫中.在asp.net mvc中可以使用內建的filter handleerror來處理程式發生的異常。接下來,來看看如何在我們的mvc專案中使用。要讓handleerrorattr...

在MVC中處理異常的總結

無論是桌面程式還是web程式,異常處理都是必須的.一般的處理方式是,捕獲異常,然後記錄異常的詳細資訊到文字檔案或者資料庫中.在asp.net mvc中可以使用內建的filter handleerror來處理程式發生的異常。接下來,來看看如何在我們的mvc專案中使用。要讓handleerrorattr...