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

问题描述 投票:0回答:1

我在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存在于集合中,则仅应用小于约束,否则跳过该约束而仅应用field1约束。

java mongodb mongodb-query morphia
1个回答
0
投票

您可以尝试这个吗?

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_BIT。

© www.soinside.com 2019 - 2024. All rights reserved.