Проблемы с сохранением документа MongoDB [дубликат]

Если вы используете Mac OS X, используйте каталог на терминале, чтобы открыть файл.

Выберите файл python3, щелкните правой кнопкой мыши и выберите «получить информацию». Выберите каталог из «Где» и пропустите его в Atom.

Как сказал вам Терри:

Затем введите python3 в командное пространство.

Он должен работать, Nahuel:)

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 в 06:45
поделиться
  • 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 в 06:45
поделиться
  • 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 в 06:45
поделиться
Другие вопросы по тегам:

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