【问题标题】:how to select documents with in range using $gt and $lt in springdata mongodb?如何在spring data mongodb中使用$gt和$lt选择范围内的文档?
【发布时间】:2014-06-09 16:04:27
【问题描述】:

错误: 由于 com.mongodb.BasicDBObject 的限制,您不能添加第二个 'stop_number' 表达式,指定为 'stop_number : { "$lt" : "5358e8d55d911a8b8d9ed4401"}'。条件已包含 'stop_number : { "$gt" : 1}'。

我的java程序是

query4.addCriteria(Criteria.where("stop_number").gt(current_stop_number).and("stop_number").lt(stop_id+1).and("bus_id").is(bus_id));

【问题讨论】:

    标签: spring-data-mongodb


    【解决方案1】:

    这是我向您提出的解决方案。

    1) 您应该创建一个标准列表:

    List<Criteria> criterias = new ArrayList<>();
    criterias.add(Criteria.where("stop_number").gt(current_stop_number));
    criterias.add(Criteria.where("stop_number").lt(stop_id+1));
    

    2) 因此,您可以通过“$and”运算符从标准列表中创建标准:

    Criteria criteria = new Criteria().andOperator(criterias.toArray(new Criteria[criterias.size()]));
    

    3) 最后一件事,得到一个查询:

    Query query = new Query(criteria);
    

    4) 使用 mongoTemplate 执行

    List<ClassName> documents = mongoTemplate.find(query, ClassName.class);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2010-11-11
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2014-01-23
      相关资源
      最近更新 更多