[英]Search API between client and server in mongodb
我在nodejs中有我的服務器,在angularjs中有我的客戶端,mongodb(mongoose)作為數據庫。 我希望我的客戶能夠使用所有正常條件進行搜索查詢,例如將幾個字段固定為某些值,將搜索字符串包含在幾個字段中,等等。
查詢可以
(value of field A can be 'x' or 'y') and
(value of field B can range between dates P and Q) and
(string s contained in fields C or D or E) few more
我可以遵循任何npm插件或標准化來豐富我的服務器端API,也可以在查詢時直接放置表達式,而無需通過多次查詢(具有大量代碼)進行map reduce。
是的,有幾個。 我只知道可與Mongoose一起使用的驅動程序,因此,如果您使用其他驅動程序,則可能需要對其進行一些修改。
對於每種方法,您都需要確定哪些要在本地過濾,哪些要由服務器處理。 過濾的位置應主要取決於您擁有多少數據。 就個人而言,放棄對我最大的集合的本地過濾更有意義,而僅依靠MongoDB來處理工作負載。
連接貓鼬和Angular等
如果我們正在使用Angular和node.js等現代Javascript框架構建基於模型的SPA應用程序,那么Angoose項目的原始動機就是消除雙重模型聲明(服務器和客戶端)。 通過使用Javascript的前端和后端,Angoose允許在客戶端使用服務器端模型和服務,就像它們駐留在客戶端一樣。
Angoose依賴於以下框架,並假定您基本熟悉它們:
- 貓鼬
- 表達
- 角度的(可選,對於非角度應用,需要jQuery)
Mongoose插件,它采用一組URL參數並構造一個查詢以供搜索API使用。 另外,有史以來最差的項目名稱。
如果您使用Mongoose幫助提供API調用的結果,則可能會習慣於處理以下調用:
/monsters?color=purple&eats_humans=true
mongoose-api-query為您處理一些繁瑣的工作。 傳入普通對象(例如req.query),查詢條件將根據您的Mongoose模式強制轉換為適當的類型。 例如,如果您在架構中定義了布爾值,我們會將eats_humans = true轉換為布爾值以進行搜索。
它還會添加大量其他搜索運算符,例如小於,大於,不等於,接近(對於地理搜索),內部和全部。 您可以在下面找到完整列表。
搜索字符串時,默認情況下會進行不區分大小寫的部分匹配。 (這不是MongoDB中的默認值。)
通過Mongoose / Node-Express / Angular.js之間的REST接口輕松鏈接模型
通過AngularJS創建,讀取,更新,刪除MongoDB集合。
它用 :
- 貓鼬訪問Mongodb
- 快速路由
- AngularJS(使用$ resource方法)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.