Проблема в том, что у вас есть умные кавычки (они же вьющиеся кавычки) вокруг значений вместо обычных "
символов. Если вы замените “
и ”
на прямую "
, то синтаксических ошибок не будет.
Я не могу понять, где промах: есть ли способ заставить экран оболочки отображать строку #s? Или где это 1: 101
В сообщении об ошибке указывается строка 1, столбец 101, но синтаксическая ошибка не особенно полезна, поскольку умные кавычки приводят в замешательство интерпретатор JavaScript.
К сожалению, нет возможности включить номера строк в оболочке mongo
, поэтому вам придется использовать внешний редактор или считать строки и смещение символов в сообщении об ошибке. В идеале вам следует использовать редактор, включающий проверку синтаксиса JavaScript и нумерацию строк.
Существует несколько способов удобной работы с внешним редактором в оболочке mongo
:
1) Установите переменную среды EDITOR
перед запуском оболочки mongo
и используйте команду edit
для изменения переменной оболочки с помощью внешнего редактора.
Например:
export EDITOR=vim
mongo
> var cfg = {}
> edit cfg
Команда edit
в оболочке создает временный файл eval'd
в оболочке mongo
при выходе из внешнего редактора. Если есть какие-либо синтаксические ошибки, ваши изменения не будут сохранены, поэтому для быстрых изменений это лучше, чем расширенное кодирование.
2) Сохраните свой JavaScript в файле с помощью внешнего редактора и используйте команду load()
в оболочке mongo
:
load("/path/to/myfile.js")
Этот подход более удобен для работы с большими фрагментами JavaScript, поскольку вам не нужно беспокоиться о синтаксических ошибках, препятствующих сохранению ваших изменений.