【发布时间】:2018-08-26 05:50:21
【问题描述】:
我有一个 API 方法,用户可以在其中传递他们自己的查询。集合中的字段只是 ns,因此用户可能会传递如下内容:
v.search = function(query: Object){
// query => {ns:{$in:['foo','bar',baz]}} // valid!
// query => {ns:{$in:{}}} // invalid!
// query => {ns:/foo/} // valid!
});
有没有办法做到这一点,比如冒烟测试,可以使明显错误的查询失败?
我希望某些 MongoDB 库能够导出此功能……但很可能它们仅通过将查询发送到数据库来验证查询,实际上,查询有效的真正仲裁者/无效。
但我希望在将查询发送到数据库之前对其进行验证。
【问题讨论】:
-
为什么不在空白集合上运行它,看看是否有任何解析错误?
-
@TarunLalwani 是的,这是一种验证查询的昂贵方式,对于高性能服务器来说需要太多时间。
标签: node.js mongodb mongoose mongodb-query