sql >> Databasteknik >  >> NoSQL >> MongoDB

Uppdatera bild med collectionfs

Det finns inget sätt att uppdatera en aktuell url-bild med FSCollection (i detta fall bilden), kolla denna Github-utgåva ,där Raix och Aldeed pratar om framtida arbeten som FS.File.updateData() , men det är inte implementerat ännu.

En möjlig lösning kommer att vara detta.

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")
        }                
   }
})


  1. MongoDB-verktyg från gemenskapen som kompletterar ClusterControl

  2. Vad är MongoDBs strikta läge och är det en bra idé att använda?

  3. Loopback hasMany relation fungerar inte på mongodb

  4. Hur man använder en SQL LIKE-sats i MongoDB