Mysql MongoDB、Mongoose、外键、连接表

Mysql MongoDB、Mongoose、外键、连接表,mysql,node.js,mongodb,mongoose,Mysql,Node.js,Mongodb,Mongoose,我一直在网上寻找有关MongoDB外键关系的帮助 我想知道是否有可能在MongoDB中实现主键/外键关系,类似于MYSQL 如果没有,是否有人会建议使用其他节点包 我只是想联系两个集合,学生和班级?如果有人能帮上忙,那就太好了。谢谢。与“主键”相当的MongoDB是每个文档的字段\u id。默认情况下,它由唯一的ObjectId填充,但当您的数据具有更合适的主键时,您可以将其分配给\u id字段(当“主键”是多个字段时,将其作为分配给\u id的子文档) MongoDB在文档之间没有明确声明的外

我一直在网上寻找有关MongoDB外键关系的帮助

我想知道是否有可能在MongoDB中实现主键/外键关系,类似于MYSQL

如果没有,是否有人会建议使用其他节点包


我只是想联系两个集合,学生和班级?如果有人能帮上忙,那就太好了。谢谢。

与“主键”相当的MongoDB是每个文档的字段
\u id
。默认情况下,它由唯一的ObjectId填充,但当您的数据具有更合适的主键时,您可以将其分配给
\u id
字段(当“主键”是多个字段时,将其作为分配给
\u id
的子文档)

MongoDB在文档之间没有明确声明的外键关系。毕竟,它不是一个关系数据库。当然,这不会阻止您在每个
学生
文档中使用字段形式的“未声明”外键,该字段是它所属的
文档的唯一标识符

或者,您可以在
文档中嵌入属于同一
学生
作为数组。这是否是一个好主意取决于您打算如何使用数据


理想的MongoDB模式与其说取决于数据的结构,不如说取决于您希望对其执行什么查询。在设计数据模式时,关系数据库用户需要了解的一件重要事情是,MongoDB不进行连接。当您想要加入时,您需要在应用程序中执行它们。因此,对于任何性能关键的用例,您应该避免任何需要从多个集合中获取数据的设计。

感谢您的回答,并为这个糟糕的问题感到抱歉-我不熟悉使用Mongo-您建议使用MySQL节点包吗?这对于关系数据库来说更合适,也更适合我。@user3180997我从未使用过它,所以我不能对它说什么。但仅仅因为MongoDB在许多Node.js开发者中很受欢迎并不意味着它是任何项目的最佳技术。我认为这是一个合理的问题。如果您是Mongodb新手,并且来自关系数据库背景,那么问这些问题是很正常的