почему mongo обрезает пробелы при сохранении?

Я заметил, что MongoDB сжимает несколько пробелов вместе (в одно пространство) при сохранении документов в коллекцию. Это не только начальные и конечные пробелы, но и любая последовательность пробелов - и только пробелы, а не все пробелы (проверяется только с пробелом и табуляцией). Это происходит при использовании драйвера Java, а также интерактивной оболочки mongo, поэтому я предполагаю, что это «особенность» самого хранилища данных.

По общему признанию, мне не нравятся посторонние пробелы в моих значениях, и я обнаружил это в процессе их удаления. Однако такое поведение кажется странным, поскольку обычно ожидается, что хранилища данных воздерживаются от «готовки» или иного изменения данных сверх того, что минимально необходимо для соответствия основным ограничениям хранилища. Иначе (если это не заявлено пользователям / разработчикам) может привести к потере данных или точности. Кроме того, зачем сжимать пробелы вместо того, чтобы полностью обрезать их у головы и хвоста - и почему, черт возьми, сжимать их между персонажами, не являющимися космическими?

    > db.test.remove()
    > db.test.save({x: "     x     \t\t\t     x     "})
    > db.test.findOne()
    { "x" : " x \t\t\t x " }

Включил ли я эту функцию по ошибке или она включена по умолчанию? Я ничего не нашел на JIRA . Мне это кажется ошибкой, но, может быть, я просто особенный. MongoDB версии 2.0.2

6
задан RubyTuesdayDONO 7 February 2012 в 23:56
поделиться