簡體   English   中英

mongodb中客戶端和服務器之間的搜索API

[英]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來處理工作負載。

angoose

連接貓鼬和Angular等

如果我們正在使用Angular和node.js等現代Javascript框架構建基於模型的SPA應用程序,那么Angoose項目的原始動機就是消除雙重模型聲明(服務器和客戶端)。 通過使用Javascript的前端和后端,Angoose允許在客戶端使用服務器端模型和服務,就像它們駐留在客戶端一樣。

Angoose依賴於以下框架,並假定您基本熟悉它們:

  • 貓鼬
  • 表達
  • 角度的(可選,對於非角度應用,需要jQuery)

貓鼬Api查詢

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM