Нажимайте несколько поддоков во время использования .save в mongoose [duplicate]

Установите Atom-runner в свой Atom, входящий в ваши настройки Atom, а затем внутри пакета и найдите Atom-runner и установите его.

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

Затем перейдите в папку lib и откройте atom-runner.coffee и замените следующий раздел кода:

defaultScopeMap:
coffee: 'coffee'
js: 'node'
ruby: 'ruby'
python: 'python3'
go: 'go run'
shell: 'bash'
powershell: 'powershell -noninteractive -noprofile -c -'

Убедитесь, что для ключевого слова python Значение python3, по умолчанию это python. См. Рис. Ниже:

Другим способом является поиск местоположения python3 с помощью команды

which python3

для вывода:

/usr/local/bin/python3

и добавить как shebang в каждый файл python. Например: -

#!/usr/local/bin/python3
import sys
print("Version ",sys.version)

Только catch - это то, что вы должны записать это в каждом файле.

31
задан Pranil Dasika 15 August 2012 в 05:56
поделиться

3 ответа

Устаревшие см. другое решение ниже, используя $ push $ each

Ваш пример близок, но вы хотите $ pushAll , а не $ нажмите , чтобы каждое добавление было добавлено отдельно (вместо того, чтобы нажимать другой массив на массив values):

var Kitten = db.model('Kitten', kittySchema);
Kitten.update({name: 'fluffy'},{$pushAll: {values:[2,3]}},{upsert:true},function(err){
        if(err){
                console.log(err);
        }else{
                console.log("Successfully added");
        }
});
40
ответ дан Scott Stensland 20 August 2018 в 10:44
поделиться
  • 1
    NB: вы также можете посмотреть $ addToSet , который может использоваться только для добавления значений в массив, если они их уже нет. – Stennie 15 August 2012 в 04:39
  • 2
    Спасибо, Стенни! Это работает. Я пропустил эту часть в документации. – Pranil Dasika 15 August 2012 в 05:44
  • 3
    @Stennie это работает только для отдельных элементов, а не для конкатенации массивов. – Tom 24 December 2013 в 18:54
  • 4
    @Stennie, вы должны положить это в качестве ответа, я поддержу вас. – Jason Sebring 16 September 2014 в 04:47
  • 5
    Консолидация массивов @Tom может быть выполнена с помощью $ addToSet вместе с $ each . – super-qua 21 October 2014 в 12:39

(обновление от Dec-2014). Поскольку MongoDB2.4 вы должны использовать:

Kitten.update({name: 'fluffy'}, {$push: {values: {$each: [2,3]}}}, {upsert:true}, function(err){
        if(err){
                console.log(err);
        }else{
                console.log("Successfully added");
        }
});
25
ответ дан Amit Portnoy 20 August 2018 в 10:44
поделиться
  • 1
    Если в нем нет документа с {name: "fluffy"}, создает ли {upsert: true} его ?; также, если я {upsert: true, new: true}, могу ли я выполнить функцию (err, result) {} и получить в результате все документы, которые были созданы / обновлены? – Besto 4 December 2016 в 18:06

Или используйте $ каждый модификатор с помощью $ addToSet:

https://docs.mongodb.com/manual/reference/operator/update/addToSet/#each-modifier

// Existing tags array
{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }

// Add "camera" and "accessories" to it
db.inventory.update(
   { _id: 2 },
   { $addToSet: { tags: { $each: [ "camera", "accessories" ] } } }
 )
0
ответ дан Dominic Tobias 20 August 2018 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: