2016-07-18 5 views
1

Ich integrierte meine Rails-Anwendung mit MongoDB mit mongo gem. Ich würde gerne wissen, wie ich Metadaten über jede Sammlung speichern kann.MongoDB - Metadaten

def initialize(db_params) 
    db = Mongo::Connection.new(connection_uri[:host], connection_uri[:port]) 
    @collection = db.db(db_params[:key]).collection(db_params[:collection]) 
    end 

Genauer gesagt möchte ich bei der Erstellung neue Kollektion einige Metadaten hinzuzufügen und dann das lesen zu können, bevor andere Datenbankaktionen wie Fund.

+0

Können Sie uns ein Beispiel geben. Um ehrlich zu sein, ich verstehe es nicht mit dem Text oben ^^. Möchten Sie einige zusätzliche Informationen wie beispielsweise eine Sammlungsbeschreibung in der Sammlung speichern? –

+0

Ja genau. Für jede Sammlung brauche ich eine zusätzliche Beschreibung. – mike927

Antwort

0

in diesem Fall sind wir für zwei Lösungen gehen könnte:

  1. mit Flexibilität der dynamischen Schema ein Meta-doc mit _id="meta" erstellen und speichern dort alle requred Daten

  2. erstellen meta Sammlung und in jeder Dokument speichern Informationen über Sammlung ,, _id="collection name"

pro Handbuch:

db.createCollection(<name>, { capped: <boolean>, 
           autoIndexId: <boolean>, 
           size: <number>, 
           max: <number>, 
           storageEngine: <document>, 
           validator: <document>, 
           validationLevel: <string>, 
           validationAction: <string>, 
           indexOptionDefaults: <document> }) 

Alle Kommentare willkommen!

+0

Beim Aufruf von 'db.getCollectionInfos()' gibt es eine Liste aller Sammlungen. Wie ich sehen kann, gibt es ein Feld "Optionen". { \t \t "name": "my_test_collection", \t \t "Optionen": { \t \t \t \t \t} \t}. Also, ist vielleicht eine Möglichkeit, meine Metadaten nur innerhalb dieses Feldes zu übergeben? – mike927

+0

@ mike927 leider gibt es keinen Platz dafür - siehe bearbeiten – profesor79

+1

ja du hast recht, es sieht so aus als ob ich einen von zwei Vorschlägen verwenden muss. – mike927