【问题标题】:How to compare two strings in mongoDB spring data?如何比较mongoDB spring数据中的两个字符串?
【发布时间】:2017-08-07 21:17:00
【问题描述】:

我正在尝试比较 mongoDB spring Data 中的两个字符串。
我的代码:

@GET
     @Path("/reqvolatility")
     @Produces(MediaType.APPLICATION_JSON)

     public  long getReqVolatility() throws JsonParseException, JsonMappingException, IOException{

     String query = "{},{_id:0,levelId:1,reqID:1,creationTime:1,lastModified:1}";
     Query query1 = new BasicQuery(query); 
     query1.addCriteria(Criteria.where("creationTime").ne("lastModified"));
     long reqvolatility = getMongoOperation().count(query1,RequirmentVO.class);

     return reqvolatility;

    }

在 mongoDB 中的上述代码“creationTime”和“lastModified”列中。我正在比较这两个字段,但它没有给出正确的计数。 它是否正确?如果是错误的,我如何比较两个文件?

【问题讨论】:

    标签: java mongodb jpa spring-data


    【解决方案1】:

    标准查询操作不会将一个字段的值与另一字段的值进行比较。为此,您需要使用可以实际比较两个字段值的 JavaScript 评估服务器端:

    假设两个字段都是 ISODate 实例

     BasicQuery query = new BasicQuery(
            new BasicDBObject("$where", "this.creationTime.getTime() != this.lastModified.getTime()")
        );
    

    【讨论】:

    • 很高兴它有帮助。请接受它解决了您的问题
    • 这是基于哪个版本的 Spring?它似乎在 2.0.1 中不起作用,在 BasicQuery 中没有构造函数能够处理 BasicDBObject。
    猜你喜欢
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 2022-09-30
    • 2019-01-14
    • 2021-06-18
    • 2021-11-20
    • 2014-12-05
    相关资源
    最近更新 更多