有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java查询mongo db,具有仅在字段存在或忽略时应用的约束

我在java中使用morphia mongo,试图查询一组带有一些约束的数据。我有一组非常旧的数据,通过我的新更改,我向现有集合添加了一个新字段,该字段将仅出现在新记录中,因此,我希望构建一个查询,以便在集合具有该字段的情况下对该集合记录应用条件

我查了几张像这样的票

Morphia MongoDB check for null and non existing field

这与此很接近,但并不完全是在寻找一个空字段。我的案子不在现场

Query<MyData> query = mObject.getDatastore().createQuery(MyData.class);
        query.field("field1").hasAnyOf(values);
        query.field("field2").exists().field("field2").lessThan(value);

如果集合中存在field2,则只应用lessthan约束,否则跳过此约束仅应用field1约束


共 (1) 个答案

  1. # 1 楼答案

    你能试试这个吗

    Query<MyData> query = mObject.getDatastore().createQuery(MyData.class);
            query.field("field1").hasAnyOf(values);
            query.field("field2").exists();
            query.field("field2").type(Type.INTEGER_64_BIT).field("field2").lessThan(value);
    

    假设“field2”的类型为INTEGER_64_位