レッスンとトラックを保存する「要素」という名前のコレクションがあります。レッスンとトラックは、cms_content_type というフィールドを使用して区別されます。これは、レッスンの場合は「レッスン」、トラックの場合は「トラック」です。トラックであれレッスンであれ、要素を一意に識別する cms_id フィールドがあります。トラックは、track_lessons フィールドの 1 つ以上のレッスンで構成されます。
レッスン文書の構造は次のとおりです。
{
'_id': ObjectId('1234'),
'name': 'Working with Tags',
'cms_content_type': 'Lesson',
'cms_id': 'abcd1234'
}
トラック ドキュメントの構造は次のとおりです。
{
'_id': ObjectId('4567'),
'name': 'Tags 101',
'cms_content_type': 'Track',
'cms_id': 'pqrs4567'
'track_lessons':[
{'lesson_cms_id': 'efgh1234'},
{'lesson_cms_id': 'jklm1234'}
]
}
この要素コレクションを照会して、どのトラックにも存在しないレッスンのリストを取得したいと考えています。どうすればこれを達成できますか?MapReduce は初めてです。このリストを取得するには、それを使用する必要がありますか?
もう 1 つの要件は、取得したレッスンのリストを並べ替えてページ番号を付けられることです。したがって、結果を別のコレクションに保存してそれに取り組むよりも、動的クエリを作成することをお勧めします。
どんな助けでも大歓迎です。