我在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约束。
答案 0 :(得分: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。