如何在流星+蒙戈中实现多对多集合,以便所有可能的字段都可以搜索和/或排序该集合?

Kalyan Ranjan Parajuli

我正在尝试在流星/蒙古族中实现以下性质的集合:

FIRST_NAME ------- LAST_NAME ------------- CLASSES ----------教授


---------- A ----------------------- B --------------- --------------- a --------------------- b

-------------------------------------------------- - - - - - - - - -光盘

-------------------------------------------------- ----------------- e --------------------- f

-------------------------------------------------- ----------------- g --------------------- h


------------- M ------------------------- N ---------- - - - - - - - 光盘

-------------------------------------------------- ----------------- --------------------- p,q

-------------------------------------------------- ----------------- x --------------------- q

-------------------------------------------------- ----------------- m --------------------- n

-------------------------------------------------- ----------------- r --------------------- d

因此,如上所述,一个人可以参加多个班级,一个班级可以有多个人参加。现在,我想使此集合可在所有可能的字段中进行搜索和排序。(另外,一位教授可以教授多门课程。)

在上面显示的模型中,通过FIRST_NAME和LAST_NAME进行搜索很容易。但是,我应该能够看到所有学生,具体取决于我选择的课程。我还想查看按字母顺序排序的班级列表,以及也报名参加相应班级的人员?

您能否让我知道如何以流星/蒙古风格进行处理?如果您能带我获得任何可用的资源,我也将很高兴?

杰斯珀·我们

您正在描述一种更适合关系数据库的典型数据结构。但是不用担心。对于合理大小的数据集,它在MongoDB中也很可行。

在文档数据库中对这种类型的结构进行建模时,可以使用嵌入,这确实会导致数据重复,但是这种数据重复通常不是问题。

您模型的伪代码:

Collection schoolClass: { // Avoid the reserved word "class"
    _id: string,
    name: string,
    students: [ { _id: string, firstName: string, lastName: string } ],
    professor: { _id: string, firstName: string, lastName: string }
}

Collection student: {
    _id: string,
    firstName: string, 
    lastName: string,
    classes: [ { _id: string, name: string } ]
}

Collection professor: {
    _id: string,
    firstName: string, 
    lastName: string,
    classes: [ { _id: string, name: string } ]
}

这使您可以轻松地搜索/排序所有对象的入口点。_id如果您需要对象中的一些特殊数据,则仅遵循“关系”到下一个集合。通用查询中所有文档所需的所有数据都应显示在运行查询的集合中。

您只需要确保在对象更改时更新所有相关集合。

很好的阅读是https://docs.mongodb.com/manual/core/data-modeling-introduction/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

流星:如何在流星上实现对集合的文本搜索以及其他查找查询?

如何在流星中创建动态资产

如何在流星中引用图像?

流星; 如何在0.8中销毁模板

我如何在流星中定义日期

如何在流星中隐藏/显示元素?

如何在流星中隐藏动态元素?

如何在Azure AD中批量创建/导入用户,以便所有用户都可以单点登录到我的SF沙箱?

如何在一个类中存储一个完成处理程序,以便所有方法都可以使用它?

流星如何在find集合中添加findParams?

如何在流星科尔多瓦中添加插件变量?

我如何在服务器端搜索大数据集合而不发布流星中的所有内容

登录后如何存储 header x-access-token 值,以便所有路由都可以受益,在 Express.js 中

如何使用 Ocelot 在 .Net Core API 網關中實現 Windows 身份驗證,以便所有下游服務都可以訪問 IWindowsPrincipal?

如何设置全局节点模块,以便所有应用程序都可以使用相同的模块

如何在流星JS中实现表格框?

如何在流星方法中运行`$ set`和`$ pull`?

流星和MongoDB:如何在表中设置对象

流星:如何在选择下拉列表中显示集合中的不同字段值?

如何在onRendered中的流星调用中访问流星ReactiveVar变量

如何在流星的助手中返回流星调用值

如何在Ubuntu 20.04上全局安装pip,以便所有用户都可以相同方式使用它?

如何在流星上使用Highmaps和Highcharts?

如何在Mup的流星部署中更改mongo的端口?

如何在流星查找方法中传递变量参数

如何在模板事件中访问流星呼叫

如何在流星模板中创建全局函数

如何在基于流星的网站的js文件中创建类?

如何在流星中设置“ current_user”