MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Bild mit collectionfs aktualisieren

Es gibt keine Möglichkeit, ein aktuelles URL-Bild mit FSCollection zu aktualisieren (in diesem Fall das Bild), überprüfen Sie dieses Github-Problem , wo Raix und Aldeed über zukünftige Arbeiten wie FS.File.updateData() sprechen , aber noch nicht implementiert.

Eine mögliche Problemumgehung ist dies.

Template.example.events({
  'click #changeImage':function(event,template){
     var message = confirm("Do you wanna change this image?"); 
         if(message == true){
            var file = $('#changeImageInput').get(0).files[0],
                newFile = new FS.File(file);
                newFile.metadata = {
                       createdBy:Meteor.userId(),
                    }
            var query = Images.findOne({'metadata.createdBy':Meteor.userId()}) //supposing there is only one image if not use a .fetch() and a for instead.

           //removing the current image.
            Images.remove({_id:query._id},function(err,result){
           //if there is not error removing the image, insert new one with the same metadata
            if(!err){
              Images.insert(fsFile,function(){
               if(!err){
                 console.log("New image get upload")
                 }
               })
             }
          });                 
         }else{
          console.log("user don't want to change the image")
        }                
   }
})