【发布时间】:2017-09-22 05:36:19
【问题描述】:
是否有一种(正确的)方法可以在 URL 查询字符串中使用 $oroperator 来实现客户端可自定义的查询,该查询不仅包含和组合字段以针对我的 node.js 提供支持RESTful API?
假设我有类似的对象
[{
A: 1,
B: 2,
C: 42
}, {
A: 3,
B: 1,
C: 42
}]
如果在多个字段中搜索,我如何使用 mongoose 查询 MongoDB 以获取 both ?像 $and: [{C:42}, $or: [{A:1}, {B:1}]] 这样的 URL 参数?
我尝试了GET /api/orders?$or=[{A:1},{B:1}]],但这会导致类似orders.find({ '$or': '[{A:1},{B:1}]]' }}) 的查询,其中数组是一个字符串。然后 MongoDB 驱动程序抱怨 $or needs an array。
像 mongo-querystring 这样的所有库都有一些用于 $gt 等的复杂运算符,但没有用于参数的简单 OR。我在这里错过了什么?
我的目标是建立一个方便的搜索字段,用户可以在其中输入一个简单的字符串,然后在多个字段中进行搜索,返回 all 文档,其中至少有一个字段(或子字符串该字段的)匹配。所以前端应该决定服务器应该搜索哪些字段以及如何搜索,从而产生一组动态的 AND/OR 组合字段/值对。
提前致谢,
丽
【问题讨论】:
标签: node.js mongodb express mongoose