Кто удаляет мои пробелы: Meteor, MongoDB или Compose.io?

Скажем, я обновляю такое поле в методе Meteor:

Collection.update({_id: "a"}, {$set: {lalala: "       a b  c     "})

Я бы ожидал, что " a b c " появится в качестве значения в базе данных, но на самом деле сохраняется "a b c".

Кто является виновником этого (или как я могу узнать?) и как мне обойти это?

Насколько я понимаю, это может быть Meteor, MongoDB или Compose.io, где находится моя база данных.


person Yeats    schedule 08.12.2016    source источник
comment
Похоже на дубликат этого вопроса, если только вы не можете убедиться, что это значение действительно то, что спасено.   -  person MasterAM    schedule 08.12.2016
comment
100%, что сохраняется значение без начальных и конечных пробелов. Я смотрю базу данных через Compose.   -  person Yeats    schedule 08.12.2016
comment
Используете ли вы github.com/aldeed/meteor-collection2?   -  person kkkkkkk    schedule 08.12.2016
comment
@Кханг Да....   -  person Yeats    schedule 08.12.2016


Ответы (1)


Если вы используете Collection2, она отвечает за автоматическую обрезку ваших данных. Вы можете отключить его, установив для параметров trim значение false при определении схемы для вашего коллекция.

person kkkkkkk    schedule 08.12.2016
comment
Мне нравится, что это по умолчанию! - person Michel Floyd; 08.12.2016
comment
Кстати, это была известная ошибка в простой схеме v1, которую Aldeed говорит, что было исправлено в v2. В v1 вы можете обойти это с помощью autoConvert: false, trim: false, что имеет смысл, если вы посмотрите на строки 746–749 файла simple-schema.js. Также рассмотрите возможность установки adHominemMode: false - person Michel Floyd; 15.12.2016