2017-05-10 2 views
2

Handeling Datei in mongodb mit gridfsHandhabung Datei in mongodb mit gridfs

Ich habe die Fragen, unter dem ich versuche, die Antwort mehr als eine Woche zu finden und kann nichts interessant als Antwort im Netz finden:

1) ist es möglich, via gridfs 2 differents Dateien in der gleichen Mongofile Anfrage in Mongo-Datenbank einfügen? Kann die Dateien haben die gleichen und uniq files_id

2) Ich habe Benutzer Sammlung und jeder Benutzer haben eine oder mehrere Dateien in mongodb. Ist es möglich, eine Verbindung zwischen Benutzern und Datei herzustellen? Ich möchte wissen, welche Datei zu jedem Benutzer gehört.

3) So ist es möglich, Datei-Metadaten (fs.files standardmäßig) in der Benutzersammlung zu haben. Zum Beispiel etwas, das wie folgt aussehen wird:

{ 
    _id:112, 
    Firstname:“Mickael”, 
    Lasttname:“Jackson”, 
    Files:[ 
     { 
     _id:5910e57f24f3f7047494720c 
     "filename":"File1", 
     "chunkSize":NumberInt(261120), 
     "uploadDate":ISODate("2014-04-13T11:32:33.557Z"), 
     "md5":"7b762939321e146569b07f72c62cca4f", 
     "length":NumberInt(646) 
     }, 
     { 
     _id:1841e57f24f3f7047494720b 
     "filename":"File2", 
     "chunkSize":NumberInt(261120), 
     "uploadDate":ISODate("2014-04-13T11:32:33.557Z"), 
     "md5":"7b762939321e146569b07f72c62cca4f", 
     "length":NumberInt(646) 
     } 
    ] 
} 

Vielen Dank im Voraus für Ihre Antwort.

Antwort

1
{ 
    _id:112, 
    Firstname:“Mickael”, 
    Lasttname:“Jackson”, 
    Files:[ 
     { 
     _id:5910e57f24f3f7047494720c 
     "filename":"File1", 
     "chunkSize":NumberInt(261120), 
     "uploadDate":ISODate("2014-04-13T11:32:33.557Z"), 
     "md5":"7b762939321e146569b07f72c62cca4f", 
     "length":NumberInt(646) 
     }, 
     { 
     _id:1841e57f24f3f7047494720b 
     "filename":"File2", 
     "chunkSize":NumberInt(261120), 
     "uploadDate":ISODate("2014-04-13T11:32:33.557Z"), 
     "md5":"7b762939321e146569b07f72c62cca4f", 
     "length":NumberInt(646) 
     } 
    ] 
} 

Hier ist Ihr formatiertem Code

+1

Vielen Dank A. Raza für den formatierten Code – mamkha

+1

Schön, Sie zu hören –

2
  1. Ist es möglich, über gridfs 2 differents Dateien im selben mongofile Anfrage in Mongo Datenbank einfügen? Können die Dateien dieselbe und eindeutige files_id haben?

    Auch wenn dies möglich war, empfehle ich dies nicht. Sie sollten eine Anfrage pro Datei durchführen. Nein, sie können nicht dieselbe eindeutige _id haben. Wenn Sie sekundäre ID benötigen, verwenden Sie die Metadaten-Eigenschaft von fs.file

  2. Ich habe Benutzer Sammlung und jeder Benutzer haben eine oder mehrere Dateien in mongodb. Ist es möglich, eine Verbindung zwischen Benutzern und Datei herzustellen? Ich möchte wissen, welche Datei zu jedem Benutzer gehört.

    Ja, Sie können eine Verknüpfung zwischen Benutzern und Dokumenten in der fs.files-Sammlung erstellen. Um dies zu tun, können Sie DBRefs, https://docs.mongodb.com/manual/reference/database-references/#dbrefs verwenden. Wo Sie anhand der fs.files Dokumente in user.files speichern Grundsätzlich können Sie eine Benutzerstruktur wie diese haben,

    { 
        _id:112, 
        Firstname:“Mickael”, 
        Lasttname:“Jackson”, 
        Files:[ //YOU WILL ONLY STORE _id of fs.files 
         { 
          "$ref" : "fs.files", 
          "$id" : ObjectId("5126bc054aed4daf9e2ab772"),//file of id 
          "$db" : <database name> 
         } 
        ] 
    } 
    

    Oder Sie können auch Metadateneigenschaft in den fs.files haben und die Benutzer-ID zuweisen Dort.

    { 
        _id:1841e57f24f3f7047494720b 
        "filename":"File2", 
        "chunkSize":NumberInt(261120), 
        "uploadDate":ISODate("2014-04-13T11:32:33.557Z"), 
        "md5":"7b762939321e146569b07f72c62cca4f", 
        "length":NumberInt(646) 
        "metadata" :{ 
          user : { 
           "$ref" : "users", 
            "$id" : 112, 
            "$db" : <database name> 
          } 
    } 
    

    Hinweis, dass es keine SQL wie Einschränkung ist, , wenn der Benutzer löschen, müssen Sie auch Dateien löschen, die zu diesem Benutzer gehört. Sonst wird es Waisen geben.

  3. So ist es möglich, Datei-Metadaten (fs.files standardmäßig) in der Benutzersammlung zu haben.

Ich glaube nicht, dass dies möglich ist. As fs.files muss eine eigene Sammlung sein. Auch in Bezug auf das Design ist diese Trennung besser.

+0

Hallo Samip, ich danke Ihnen für Ihren Beitrag. Es ist jetzt klarer für mich. Ich werde die erste Annäherung verwenden, indem ich die Benutzersammlung ändere. – mamkha

Verwandte Themen