在 mongoengine 中使用 int 键将其他文档作为 map 或 dict 引用

问题描述

我正在使用 mongoengine 为课程计划和课程设置 Mongo 数据库。课程有一定的水平,这取决于程序。例如,课程 A 可能在课程计划 A 和 C 中为 1 级,但在课程计划 B 中为 2 级。我想在课程和计划之间创建双向链接。此参考还应存储课程的级别。 这个想法是我可以轻松查询给定的课程计划,例如1 级课程是,或者对于给定的课程而言,它是 1 级的课程。

对于常规 Python 类,我可能会使用 dicts 来完成,如下所示:

class CourseProgram():
    pass
    
class Course():
    pass
    
programA = CourseProgram()
programB = CourseProgram()
programC = CourseProgram()
courseA = Course()
courseA.programs = {programA : 1,programB : 2,programC : 1}

programA.courses = {courseA : 1}
programB.courses = {courseA : 2}
programC = {courseA : 1}

或者,它的结构可以如下:

courseA.programs = {1: [programA,programC],2: [programB]}
programA.courses = {1: [courseA]}
programB.courses = {2: [courseA]}
programC.courses = {1: [courseA]}

在 mongoengine 中设计这个的逻辑方法是什么?我考虑了 MapFieldDictField 作为字段,但它们要求键是字符串。这排除了第一个选项。对于第二个选项,我可以使用 str 而不是 int 作为键。但是,我想知道是否有更好的方法来做到这一点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...