Запрос mongo db с ограничением для применения, только если поле существует, или игнорировать - PullRequest
0 голосов
/ 11 октября 2019

Я использую Morphia Mongo с Java, где я пытаюсь запросить набор данных с некоторыми ограничениями. У меня есть очень старый набор данных, и с моим новым изменением я добавил новое поле в существующую коллекцию, которое будет присутствовать только в новых записях, поэтому я хочу создать запрос, чтобы применить условие к этой записи коллекции, если и толькоесли в коллекции есть это поле

, я проверил несколько билетов, таких как

Проверка Morphia MongoDB на пустое и несуществующее поле

, которое близко к этомуно не точно, где он ищет пустое поле. В моем случае поле отсутствует

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 Ответ

0 голосов
/ 31 октября 2019

Можете ли вы попробовать это?

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.

...