2015-06-16 5 views
0

Я изучаю NodeJs и для демонстрационного проекта мне нужно использовать MonGoDB с Mongoose.Mongoose: обновленная коллекция с предыдущими данными

Я создал коллекцию для фотоальбома.

Первая строка: albumName, а вторая строка: изображения.

Я не понимаю, как я могу сохранить все мои фотографии в картинках строк без стирания старых записей.

Это будет здорово, если я смогу работать так. Таким образом, я могу извлечь все данные (и фотографии) о альбоме с одним запросом :-)

результаты должны быть выход, как это:

{ 
    album : album1, 
    pictures{ 
     1.jpg, 
     2.jpg, 
     3.jpg 
    } 
} 

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

uploader.on('end', function() { 
    console.log("done uploading big pics"); 

    //SAVE DB 
    AlbumPhoto.update({album:'album1'}, {$set: {pictures:file_name}}, function(err, data){ 
    if(err){ 
     console.log(err); 
    } 
    }) 
}); 

uploader2.on('end', function() { 
    console.log("done uploading mini pics"); 

    //SAVE DB 
    AlbumPhoto.update({album:'album1'}, {$set: {pictures:mini}}, function(err, data){ 
    if(err){ 
     console.log(err); 
    } 
    }) 
}); 

Кто-то может дать мне указания и пример, чтобы сделать это?

ответ

0

Прежде всего схеме вы вывесили выключен, должен быть

{ 
    album : "album1", 
    pictures: [ 
     1.jpg, 
     2.jpg, 
     3.jpg 
    ] 
} 

Нота «картинки» массив не является объектом.

Вы можете добавить в массив с

//SAVE DB 

AlbumPhoto.update({album:'album1'}, {$push: {pictures: "new.jpg"}}, function(err, data){ 
    if(err){ 
     console.log(err); 
    } 
    }) 
+0

Хорошо, спасибо. Теперь, если я хочу организовать массив следующим образом: 'pictures: [1.jpg, 1-mini.jpg], [2.jpg, 2-mini.jpg] ...' как я могу нажать это? – Pixelight

Смежные вопросы