2016-07-18 6 views
1

mongo gemを使用してMongoDBで私のレールアプリケーションを統合しました。私は各コレクションのメタデータをどのように格納できるかを知りたいと思います。MongoDB - メタデータ

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 

は、より正確には、私は新しいコレクションを作成中に、いくつかのメタデータを追加して、検索などの他のデータベース・アクションの前にそれを読むことができるようにしたいです。

+0

いくつか例を挙げてください。正直言って、私は上記のテキストでそれを得ることはありません^^。コレクションの説明のような追加情報をコレクションに保存しますか? –

+0

はい。コレクションごとに私は追加の説明が必要です。 – mike927

答えて

0

このケースでは、我々は2つのソリューションのために行くことができます:

  1. ダイナミックスキーマの柔軟性を使用して_id="meta"とメタドキュメントを作成し、そこにすべてのrequredデータを格納

  2. meta収集と各を作成しますコレクションに関するドキュメントストア情報_id="collection name"

マニュアル:

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

すべての歓迎!

+0

'db.getCollectionInfos()'を呼び出すと、すべてのコレクションのリストがあります。私が見ることができるように、 'options'フィールドがあります。 {\t \t "名前": "my_test_collection"、 \t \t "オプション":{ \t \t \t \t \t} \t}。だから、おそらくこのフィールドの内側に自分のメタデータを渡す方法がありますか? – mike927

+0

@ mike927残念ながら、それのための余地はありません - 編集を参照してください – profesor79

+1

はい、私は2つの提案のいずれかを使用する必要がありますように見えます。 – mike927