3

mongodb docs の具体化されたパスツリー構造のガイドでは、単純なクエリをサポートするためにデータを構造化する方法の簡単な例を示しています。

db.categories.insert( { _id: "Books", path: null } )
db.categories.insert( { _id: "Programming", path: ",Books," } )
db.categories.insert( { _id: "Databases", path: ",Books,Programming," } )
db.categories.insert( { _id: "Languages", path: ",Books,Programming," } )
db.categories.insert( { _id: "MongoDB", path: ",Books,Programming,Databases," } )
db.categories.insert( { _id: "dbm", path: ",Books,Programming,Databases," } )

_idこれは、アイテムごとに一意である限り問題なく機能します。私たちの場合、コース構造を設計しています。これは、/course-a/lesson-1/introduction. データ設計は重複をサポートする必要があります (たとえば、複数のコースに「イントロダクション」というレッスンを含めることができます)。

  • コースA
    • はじめに(レッスン)
      • パート 1 (レッスン)
      • パート 2 (レッスン)
    • 背景(レッスン)
    • ... (レッスン)
  • Bコース
    • はじめに(レッスン)
    • なぜこれが機能するのか (レッスン)
    • ... (レッスン)

私たちの現在の解決策は、マテリアライズド パス デザインを使用してレッスンを作成することです。これは、重複するレッスン ID では機能しないことに気付いたときです。しかし、すべてを捨てる前に、アドバイスをお願いしたいと思います。

具体化されたパスを使用して問題をサポートするためにこれを設計する方法はありますか?

4

0 に答える 0