如何在mongo中将Criteria与TextCriteria结合使用spring java驱动程序?

时间:2014-12-07 07:36:06

标签: java spring mongodb

我已经在表格中为列创建了文本索引。现在,我想做一个普通的查询,它对一个列进行过滤,对过滤后的结果进行文本查询。

通过命令行,我能够做到:

db.table1.find({provider:"543108bee5ca0167657dc343", $text: { $search: "cake" }})

我无法使用 mongo java驱动程序执行相同操作。这是我的代码:

Query query = Query.query(
    Criteria.where("provider").in(providerIDs).
    and(TextCriteria.
        forLanguage("en").
        matching(searchString).getKey()));
mongoOperation.find(query, Table1.class);

它给了我错误:无法规范化查询。

另外,我如何对此进行分页?

1 个答案:

答案 0 :(得分:1)

尝试使用addCriteria()方法

Query query = Query.query(Criteria.where("provider").in(providerIDs))
  .addCriteria(TextCriteria.forLanguage("en").matching("searchString"));