2014-10-02 1 views
0

Я использую оболочку Mongo. Я установил свой EDITOR на мой путь к блокноту ++. Я создаю объект, а затем я использую команду EDIT для редактирования obeject с помощью notepad ++, но он не обновляет объект.редактирование объектов из MongoDB с помощью внешнего редактора не обновляет объект

// mongo shell 
var pow = { name: "teest" }; 
edit pow 
// notepad++ opens a document called 'mongo_edit141225123.js' that resides 
// in C:\users\...\Appdata\local\temp 
// I edit the object, save and close notepad++ 
pow // object isn't updated :(

что мне не хватает?

+0

Из верхней части моей головы я бы сказал, что вы «пропустили», используя настоящую операционную систему. Но действительно, как РЕДАКТОР определен в вашем «mongorc»? –

+0

У меня такая же проблема, если я использую внешний редактор (textmate) в OS X (на самом деле файл пуст, когда он запускается), но не если я использую vim или nano, которые остаются в оболочке для редактирования. У меня нет Windows-машины для тестирования здесь (позже), так что увидим, что то же самое верно для Windows –

+0

@NeilLunn my mongorc.js пуст :) –

ответ

0

Здесь, как представляется, несколько оговорок. Но я могу описать, как я получил эту работу:

  1. Установить переменные окружения PATH включать путь к исполняемому Notepad ++. Обратите внимание на то, как «применить» это изменение, так и при отсутствии существующего окна командной строки. Или, по крайней мере, открыть новый, как только этот шаг будет завершен.

  2. Укажите переменную EDITOR в окне командной оболочки или иным образом установите ее под теми же системными свойствами, что и параметр переменной PATH. Поскольку директория программы находится в PATH просто установить имя исполняемого файла:

    set EDITOR="notepad++" 
    
  3. Запуск вашей Монго оболочки и редактируете переменную:

    > edit something 
    
  4. Это запустит указанный редактор, с «неопределенная» переменная сначала. Введите что-то «действительное», так как любое недопустимое объявление JavaScript будет отброшено. Теперь о важной части. После правки и при «закрытии» нажмите на вкладку «закрыть» значок и не закрыть весь редактор, как показано ниже:

    enter image description here

Это последняя часть, как представляется, наиболее важным. Если вам будет предложено сохранить (и, скорее всего, будет), сделайте это. Только «после» вкладка была закрыта (и сохранена), если вы затем закроете редактор.

Если вы затем выпустили тот же самый edit something из оболочки mongo, редактор откроется с содержимым, которое вы редактировали ранее.

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

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

+0

это не работает. Также хочу отметить, что я изменил редактор на блокнот по умолчанию (c: \ windows \ notepad.exe), и он работает: | ,Я предполагаю, что блокнот ++ на моем компьютере каким-то образом либо не имеет доступа к сохранению временного файла, либо я не знаю ... –

+0

@razvan Вы точно следуете этому? Я был очень специфичен в отношении eac, так как это единственный способ, которым это работает. Вы должны сохранить и закрыть вкладку перед закрытием редактора –

+0

, похоже, что она работает, если я закрываю блокнот ++ и все мои предыдущие вкладки. думаю, я не следовал вашим инструкциям правильно. Кажется, что проблема связана с редактором. Я также открыл эту тему относительно этой проблемы. http://stackoverflow.com/questions/21467138/mongodb-editor-variable-mongodb-shell-windows-7. Еще раз спасибо и приятный день –