java - 如何使用查询对象比较 Spring Data MongoDB 中的 2 个字段

标签 java mongodb spring-data spring-data-mongodb

mongodb 中,简单 SQL 中看似自然的事情是不可能的。

给定一个简单的文档:

{
    "total_units" : 100,
    "purchased_unit" : 60
}

我想使用 spring 数据 Criteria 类查询集合,其中 "total_units > purchased_units"

据我了解,它应该与任何其他条件一样微不足道。

在 Spring api 上没有找到支持这个的东西。

最佳答案

您可以使用以下模式:

Criteria criteria = new Criteria() {
    @Override
    public DBObject getCriteriaObject() {
        DBObject obj = new BasicDBObject();
        obj.put("$where", "this.total_units > this.purchased_units");
        return obj;
    }
};

Query query = Query.query(criteria);

关于java - 如何使用查询对象比较 Spring Data MongoDB 中的 2 个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279853/

相关文章:

java - 向特定线程发送数据

java - 自定义 ViewPager 的 PageTitles

.net - C# 中的 MongoDB FilterDefinition 和 IQueryable

javascript - 首先按特定值对 meteor 集合进行排序

java - 如果不存在,如何将唯一消息 ID 添加到 soap 1.2 请求?

java - Cobertura+故障保护 : make "mvn clean site" proceed even if an integration test fails

linux - 我如何远程连接到由 mongod 启动的 mongodb

java - 即使数据库已关闭,如何使 Spring 服务器启动?

java - Spring Data Elasticsearch 与 ES 7.2.1 |索引时 GeoPoint 映射失败

java - Spring Data MongoDB 聚合与日期匹配