В текущей версии EL 2.2 вы не можете вставлять EL-выражения и String-concatenate EL-переменные таким образом. Используйте
, чтобы подготовить динамический ключ, прежде чем использовать его в другом выражении EL, просто вставив выражение EL в строку:
Альтернативой является просто использование library
и name
вместо генерации URL-адреса на основе данных с помощью #{resource}
mapping:
Update: с EL 3.0 вы можете использовать оператор +=
для String- объединить EL-переменные, если вы действительно не можете использовать library/name
по какой-либо причине.
По соображениям производительности MongoDB никогда не разбивает документ на жесткий диск.
Когда вы начинаете с пустой коллекции и начинаете вставлять в нее документ после документа, mongoDB последовательно помещает их на диск.
Но что происходит, когда вы обновляете документ, и теперь он занимает больше места и больше не помещается в старое положение, не перекрывая следующий? В этом случае MongoDB удалит его и повторно добавит как новый в конец файла коллекции.
В вашем файле коллекции теперь есть дыра неиспользуемого пространства. Это довольно пустая трата, не так ли? Вот почему следующий документ, который вставлен и достаточно мал, чтобы поместиться в это отверстие, будет вставлен в это отверстие. Вполне вероятно, что случилось с вашей второй коллекцией.
Итог: Никогда не полагайтесь на документы, возвращаемые в порядке вставки. Когда вы заботитесь о заказе, всегда сортируйте результаты.