是否可以过滤MongoDB查询结果?

时间:2015-07-30 09:33:23

标签: java mongodb

我正在开发一个从MongoDB获取数据的简单Web应用程序。

我需要做的是显示与网页上的查询匹配的数据。假设用户必须选择

  • 编程语言 [Java,C#,Python]
  • 项目创建时间 [所有,最多一周前,最大月前]
  • 实施算法 [heapsort,quicksort,mergesort]

现在,我的MongoDB集合包含所有类型的对象,其中一些根本不一定是算法(不幸的是,这是不可避免的)。

由于这个事实,我有一个特定的查询,找到所有有资格进一步处理的文件。

FindIterable<Document> docs = collection.find(Filters.ex(programmingLanguage)); 

这是我的最后一个问题:

当我已经拥有FindIterable对象时,我是否可以对其进行过滤,以便只选择以前选定文档中的特定文档?

例如,我需要一行代码,这些代码只会给我一个不到一个月前创建的文档,这些文档是用Java编写的,给定 docs 对象。

我希望我能像这样实现它:

创建在FindIterable对象上应用附加过滤器的函数

public static FindIterable<Document> applyLastMonth(FindIterable<Document> docs) {
    return docs.<magicfunction>(Filters.gte("date", dateMonthAgo()))
}

并将其应用于需要的任何地方。有可能吗?

我的问题要复杂得多,所以请不要解决上面给出的例子,我只是希望能够过滤其他查询返回的结果,这样我就不会在我的代码中查看几十个案例了。不幸的是,我发现docs.filter(...)对我不起作用,因为它用新的查询替换了旧查询。

0 个答案:

没有答案