8

コレクションを説明するメタデータをMongoDBに保存する最良の方法は何ですか?

任意の変化する数のドキュメントを含むコレクションがあります。新しいドキュメントを作成するときに、現在コレクション内にあるドキュメントの数に基づいて、新しい一時的な名前 (文字列) を割り当てたいと考えています。たとえば、"Doc 1"、"Doc 2" などです。ドキュメントは削除される可能性があるため、 count() を実行しても、有用な結果は得られません。

1 つのオプションは、コレクションを説明するメタデータを別のコレクション内に格納することですが、これは扱いにくいようです。

Mongo はスキーマフリーであるため、コレクションのメタデータをコレクション自体、おそらく「メタデータ」という名前のドキュメント内に保持できます。その場合、どうすればそのドキュメントにすばやくアクセスできますか? 「メタデータ」のインデックスを作成して、O(n) 検索時間なしですぐに取得する必要がありますか?

前の段落で説明した方法よりも標準的または単純な方法はありますか? 将来、単なるカウントよりも多くのメタデータが得られる可能性があります。

4

2 に答える 2

3

このリンクを確認できます https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/

上記のリンクによると、私の意見では、次metadataの形式で名前が付けられたコレクションにそれらを保存するだけです。

{
    '_id':'collection1'
    'c': 0,
    'other metadata1': 'foo',
    'other metadata2': 'bar'
}

その後、コレクション名に従ってそれらのメタデータを取得できます。このドキュメントにフィールドを追加したい場合は、update で$setを使用してください。

于 2012-11-02T22:49:59.413 に答える
2

私たちがよく行うのは、設定やメタデータなどを別の 1 つのドキュメント コレクション .settings に入れることです。例えば。データがコレクション「user」にある場合、メタデータを「user.settings」に入れます

于 2013-05-24T12:32:51.967 に答える