Какие символы НЕ допускаются в именах полей MongoDB?

Я понял это, конечно. и пробел не допускаются. Есть ли другие запрещенные символы?

 Acorn19 мар. 2012 г., 18:21
Подобный вопрос:stackoverflow.com/a/7976235/311220
 Mirek Rusin10 июл. 2014 г., 04:46
Пространство разрешено.

Ответы на вопрос(2)

на который стоит обратить внимание, это то, что вы можете создать имя свойства с именем «query», но затем использовать операторы запроса для него, что затруднит выполнение большого количества запросов.

Пример:

Вставить документ со свойством с именем

db.coll.insert({ query: 'foo' });

Запрос на равенство работает:

db.coll.findOne({ query: 'foo' });    

Не равно ($ ne) не:

db.coll.findOne({ query: { $ne: 'bar' } });
 Asya Kamsky18 окт. 2016 г., 17:01
По состоянию на 3.2 (выпущен в конце 2015 года) это было исправлено.
 JohnnyHK01 сент. 2015 г., 19:35
Хорошая точка зрения. Но вы все равно можете сделать этот запрос какdb.coll.findOne({query: {query: {$ne: 'bar'}}}), Так что это не невозможно, но это неудобно.
 Dave02 сент. 2015 г., 19:54
Спасибо, я не осознавал, что это было невозможно до тех пор, пока я не опубликовал это. Определенно более неловко.
Решение Вопроса

который не является специальным (содержит «.» Или начинается с «$»).

https://jira.mongodb.org/browse/SERVER-3229

https://stackoverflow.com/a/7976235/311220

Обычно лучше придерживаться строчных буквенно-цифровых символов с подчеркиванием.

 Dor15 мар. 2013 г., 13:17
Как насчет спецификации продукта? Разве это не сильно упростило бы дизайн, если бы имена полей были фактическим описанием спецификации? (например.'Screen Size': '26 inches')
 Justin John17 июл. 2013 г., 06:14
Как он будет обрабатывать верблюжьи слова, такие какuserDetails? Это действительно?
 Mika24 мар. 2017 г., 00:16
«/» - это то, что я не рекомендую, потому что у mongodump и mongorestore будут с этим проблемыjira.mongodb.org/browse/TOOLS-1163
 Erwin Wessels11 июн. 2013 г., 10:17
Не обязательно, @Dor - вы хотите иметь некоторую гибкость между вашим пользовательским интерфейсом и базой данных (ничто так не изменчиво, как у клиента: «Подождите, я хочу сказать« Размер экрана », а не« Размер экрана »»). И, конечно же, в этом есть загадка интернационализации, требующая и разделения. Кстати, когда Акорн говорит «любой UTF8», это включает пробелы, так что у вас все в порядке, если хотите.
 Jason R. Coombs10 июл. 2014 г., 23:14
@Dor представляет конкретный контрпример к заявлению, что «обычно лучше придерживаться буквенно-цифровых символов в нижнем регистре с подчеркиванием». На уровне базы данных трудно делать такие заявления, не понимая лучше, каков вариант использования. В базе данных документов, такой как MongoDB, есть много потенциальных вариантов использования, в которых можно представить использование ключей, отличных от определенных программистом идентификаторов, и в этом случае приятно знать, какие именно символы могут быть разрешены или запрещены.

Ваш ответ на вопрос