代码之家  ›  专栏  ›  技术社区  ›  ivoba

带or运算符和文本搜索的spring mongodb查询

  •  0
  • ivoba  · 技术社区  · 8 年前

    {
      $or: [
        { "$text" : { "$search" : "570-11024" } },
        {"productDetails.code": "572-R110"}
      ]
    }
    

    它将全文索引搜索与标准where条件和oroperator结合起来。

    查询的 操作器(标准…标准) 方法只接受条件,不接受TextCriteria,也不接受CriteriaDefinition接口。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Sunand Padmanabhan    8 年前

    是的,你是对的,在Spring Data Mongo你可以这么做,

    final TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny("570-11024");
    final DBObject tc = textCriteria.getCriteriaObject();
    final Criteria criteria = Criteria.where("productDetails.code").is("572-R110");
    final DBObject co = criteria.getCriteriaObject();
    
    BasicDBList or = new BasicDBList();
    or.add(tc);
    or.add(co);
    
    DBObject qq = new BasicDBObject("$or", or);
    // Use MongoTemplate to execute command
    mongoTemplate.executeCommand(qq);