Динамически создавайте запрос mongodb
У меня есть коллекция, скажем, тест, который содержит около 100 полей, таких как _1, _2, _3 и т. Д.
Теперь я хочу сформировать запрос MongoDB таким образом, чтобы любой ввод был похож на 1, 2, 5 или 5, 6, 7, 8, 9.
Правильный запрос может быть сгенерирован. Пожалуйста, помогите в отношении MongoJack.
2 ответа
Попробуйте сначала объединить ввод с символом подчеркивания, а затем использовать соединенную строку в запросе, что-то вроде:
StringBuilder sb = new StringBuilder();
sb.append("_");
sb.append(input);
String field = sb.toString();
List<Foo> bar = coll.find(DBQuery.is(field, "foo")).toArray();
Я наконец нашел решение. Мы можем сделать что-то вроде этого:
Query q = DBQuery.empty();
for(int i=0; i < params.length ; i++ ) {
q = q.or(DBQuery.greaterThan("_"+(Integer.valueOf(params[i])+1), 0));
}
Работал для меня