1

ルート ドキュメントへの DBRef を含むコレクションがあります。データ コレクション内の単一のルート ドキュメントにリンクするドキュメントが何万もあります。そのため、ルート ドキュメントのデータをネストしないことにしました。

Data Collection:
    _id : Auto-Created ID
    ts : TimeStamp 
    field_1 : Whatever
    ...
    field_n : Whatever 
    root : DBRef

"Root" Document Collection:
    _id: Filename (unique)
    field_1 : Whatever
    ...
    field_n : Whatever 

コレクションを分割する最良の方法は、フィールドtsroot._id複合キーとして使用することだと思います。

それは可能ですか?そうでない場合、最善の解決策は何ですか? root._idフィールドをデータ コレクションの通常のフィールドにコピーするだけですか?

4

1 に答える 1

0

私自身の質問に答えるために、ここに私が見つけたものがあります:

後続のクエリでクライアント側ですべての DBRef を取得する必要があるため、明らかにこれは不可能です。

sh_keyアプリケーション側でデータをインポートしながら、オンザフライで作成される新しいフィールドを取り込みました。新しいフィールドには、「複合シャーディング キー」の値が保持されます。

root._id値は、 のように値と時間を連結したものtsです{root._id}:{hour of ts}

于 2016-09-26T13:14:10.257 に答える