繁体   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