2015-01-15 44 views
0

我有我的服务器在nodejs和客户端在angularjs,mongodb(mongoose)作为数据库。我希望我的客户能够使中放置了像固定几个领域达到一定的数值​​都正常consitions搜索查询,包含在几个领域等的搜索字符串在mongodb中客户端和服务器之间的搜索API

查询可以

(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,并且还可以直接放置表达式,同时查询与多个查询(有很多代码)的地图缩减查询。

回答

1

是的,有几个。我只知道那些与Mongoose一起工作的人,所以如果你使用另一个驱动程序,你可能需要修改它们。

每个这些你需要确定哪些过滤本地和哪些让服务器处理它。你过滤的地方应该主要取决于你有多少数据。就个人而言,为我的最大集合放弃本地过滤更为合理,并且只需依靠MongoDB来处理工作负载。

angoose

连接猫鼬和角度和更

原动机Angoose项目是双 模型声明(服务器和客户端),如果我们正在建立一个丰富的 做掉基于模型的SPA应用程序,使用现代Javascript框架,如 Angular和node.js.对于使用Javascript的前端和后端, Angoose允许服务器端模型和服务在客户端用于 ,就好像它们驻留在客户端一样。

Angoose取决于以下框架,并假设你有基本的 familarities与他们:

  • 猫鼬
  • 表达
  • 角(可选,用于无棱角的应用程序,jQuery是必需的)

Mongoose Api Query

Mongoose插件接受一组URL参数并构造查询以在搜索API中使用。此外,最糟糕的项目名称。

如果你用猫鼬,以帮助服务的API调用的结果,可能被用来处理呼叫像 :

/monsters?color=purple&eats_humans=true

猫鼬-API查询处理 一些无用功的为您服务。传入一个香草对象(例如 req.query),根据您的Mongoose模式将查询条件转换为适当的 类型。例如,如果在模式中定义了 布尔值,我们会将eats_humans = true转换为 布尔型用于搜索。

它还增加了大量的其他搜索运算符,比如,大于,不等于,近(对于地质索引),in和all中的其他搜索运算符,如小于, 。你可以在 找到下面的完整列表。

在搜索字符串时,默认情况下它会执行部分不区分大小写的 匹配。 (这是不是在MongoDB的默认值。)通过/猫鼬/节点之间快速REST接口Angular.js

创建,读取,更新容易

Angular Bridge

链接模式,通过AngularJS删除MongoDB集合。

它使用:

  • 猫鼬访问到MongoDB的
  • 表达对路由
  • AngularJS(与$资源法)

相关问题