Это действительно запутанная тема. Я работаю в 10gen, и мне пришлось потратить некоторое время, обворачивая вокруг себя;)
Давайте рассмотрим, как обработчик запросов обрабатывает этот запрос.
Вот еще раз:
> db.test.find({ b : { $gt : 4, $lt : 6}});
Когда он попадает в запись, которая кажется, что она не должна совпадать ...
{ "_id" : ObjectId("4d54cff54364000000004331"), "a" : 1, "b" : [ 2, 4, 6, 8 ] }
совпадение не выполняется против каждого элемента массива, а скорее против массива в целом.
Сравнение выполняется в три этапа:
Шаг 1: Найдите все документы, где b имеет значение больше 4
b: [2,4, 6,8], поскольку 6 & amp; 8 больше 4
Шаг 2: найдите все документы, где b имеет значение менее 6
b: [2,4,6,8], так как 2 & amp; 4 меньше 6
Шаг 3: Найдите набор документов, которые соответствуют на обоих этапах 1 и am; 2.
Документ с b: [2,4,6,8] соответствовал обеим этапам 1 & amp; 2, поэтому возвращается как совпадение. Обратите внимание, что результаты также дедуплицируются на этом этапе, поэтому один и тот же документ не будет возвращен дважды.
Если вы хотите, чтобы ваш запрос применялся к отдельным элементам массива, а не к массиву в целом, вы можете использовать оператор $ elemMatch. Например,
> db.temp.find({b: {$elemMatch: {$gt: 4, $lt: 5}}})
> db.temp.find({b: {$elemMatch: {$gte: 4, $lt: 5}}})
{ "_id" : ObjectId("4d558b6f4f0b1e2141b66660"), "b" : [ 2, 3, 4, 5, 6 ] }
По умолчанию WebSphere установит EAR DefaultApplication, который будет использовать корень / context. Если вы хотите использовать этот контекстный корень, вы затем удалите DefaultApplication с сервера или измените контекстный корень для этого приложения на что-то другое.
Глядя на эту ошибку и на соответствующий код в WebApp, можете ли вы посмотреть, был ли журнал FFDC создан одновременно с этим предупреждением? Если бы я нашел правильный код, то должен был быть также создан FFDC, в котором были бы дополнительные подробности относительно точной ошибки, которая произошла.
[16.01.1914: 41: 42: 691 GMT] 000000c3 webapp W com.ibm.ws.webcontainer.webapp.WebApp initializeStaticFileHandler
BLOCKQUOTE>
SRVE0278E: Ошибка при добавлении сопоставления сервлета - -> /*.