2016-12-08 4 views
1

Скажем, я обновить поле, как это в методе Метеор:Кто удаляет мои пробелы: Meteor, MongoDB или Compose.io?

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

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

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

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

+0

Кажется, что это дубликат [этого вопроса] (http://dba.stackexchange.com/questions/27200/preserving-whitespace-in-mongodb-values), если вы не можете действительно убедиться, что это значение действительно то, что сохранены. – MasterAM

+0

100%, что сохраняется значение без начального и конечного пробелов. Я просматриваю базу данных через Compose. – Yeats

+1

Вы используете https://github.com/aldeed/meteor-collection2? – Khang

ответ

2

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

+1

Мне нравится, что это по умолчанию! –

+0

Кстати, это была [известная ошибка в простой схеме v1] (https://github.com/aldeed/meteor-simple-schema/issues/348), о которой говорит Aldeed, исправлена ​​в версии v2. В v1 вы можете обойти это с помощью 'autoConvert: false, trim: false', что имеет смысл, если вы посмотрите на [строки 746-749 простых-schema.js] (https://github.com/aldeed/meteor-simple -schema/BLOB/v1/простой schema.js # L746-L749). Также рассмотрите установку 'adHominemMode: false' –