【发布时间】:2015-10-24 18:38:25
【问题描述】:
我正在为用户构建一个能够查询 mongoDB 的表单。用户必须能够添加自己的“条目”,这样才能进行以下查询:
fieldA 等于 someValue
与
fieldB 大于someValue 或 fieldB 小于otherValue
我希望参数如下所示:
{
:r4nd0m => {
:normal => ['someField', 'lte', 'someValue'],
:or => ['someField', 'gte', 'someValue']
},
:r4ndom_2 => {
:normal => ['otherfield', 'is' '42179'],
:or => [] # Not filled
}
}
我必须如何命名input names 才能完成此操作?有没有更好的方法从页面中获取这样的复杂表单数据,或者我是否走在正确的轨道上?
【问题讨论】:
-
出于好奇,为什么提交的表单输入必须看起来像您的示例?这不是有效的 JSON,必须转换为正确的 MongoDB 查询。看起来需要进行一些 JavaScript 转换才能从序列化的表单数据转换为您的格式。
-
@willOEM 我想自己将其解析为合法查询。似乎我无法在 Javascript 的帮助下构建一组 HTML 输入,将 100% 完美地转换为 MongoDB 查询。我的问题是我正在努力让这种情况发生。
-
假设你可以,因为 MongoDB 查询是 JSON 对象。您只需在对象创建中构建一些逻辑,以正确构建嵌套和/或逻辑和评估运算符。如果 Node 或 Angular 尚不存在用于此的库,我会感到惊讶。