Чтобы решить эту проблему, вам сначала нужно включить расширение Twig_Extension_StringLoader
. Это дает вам доступ к функции template_from_string , которая дает вам возможность «создавать» шаблоны внутри twig
и (re) включить требуемую строчную интерполяцию.
$twig->addExtension(new Twig_Extension_StringLoader());
использовать template_from_string
для достижения желаемого эффекта
{% set legalLink = 'Datenschutzbedingungen' %}
{{ include(template_from_string('{{ "'~contact.legal~'" }}')) }}
Я думаю, что это может сработать
@Query("{'$or':[ {'A':10}, {'B':20} ] }")
Использовать SpringQuery Spring:
DBObject queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
values.add(new BasicDBObject("A", 10));
values.add(new BasicDBObject("B", 20));
queryCondition.put("$or", values);
Query query = new BasicQuery(queryCondition);
mongoTemplate.find(query, clazz);
Или если вы используете API критериев
Criteria criteria = new Criteria();
criteria.orOperator(Criteria.where("A").is(10),Criteria.where("B").is(20));
Query query = new Query(criteria);
mongoOps.find(query, <Yourclass>.class, "collectionName");
Вы можете использовать структуру запроса Spring:
Query query = new Query();
query.addCriteria(Criteria.where("id").is(10).orOperator(Criteria.where("id").is(20));
this.client.findOne(query, clazz);
Для этого вы можете использовать оператор $in
. Я не знаю Java Spring, но, учитывая ваш пример, часть Query
должна выглядеть так:
@Query("{A: {$in: [10, 20]}}")
Вы можете использовать оператор $ in в Spring Java:
Criteria criteria = Criteria.where("field").in(listOfOptions);