我正在开发一个提供可链接方法.search(query)
的{{3}}插件。在某些情况下,无论查询构建器链中的其他方法如何运行,我都希望查询返回零结果。事实证明,这并不像我假设的那么容易。
基本上,我有以下代码:
schema.query.search = function search(query) {
if ("query is invalid") {
// return no results => no easy way to achieve that?
}
return this.find(query);
};
现在,我希望SomeModel.find({}).search(someQuery).exec()
在查询无效的情况下不返回任何结果。我首先尝试return this.limit(0)
,但结果是0的限制相当于Mongoose Query Helper。
作为临时解决方案,我做return this.find({ nonExistingField: 'something' })
总是没有结果,但这看起来有点尴尬,在性能方面可能也不是那么理想,因为当不需要搜索时会触发搜索
提前感谢您的帮助!