我一直在使用mysql,但是我对mongodb感兴趣,但是我不知道如何转移数据库 例如:
学生
------------ ----------
name student_id
------------ ----------
james 1
jim 2
class
------------ ----------
class_name class_id
------------ ----------
math 1
science 2
computer 3
takeclass
------------ ----------
student_id class_id
------------ ----------
1 1
1 2
2 1
2 3
当我想要吉姆(Jim)接受的类名时,我使用sql
select c.class_name
from student s, class c,takeclass t
where s.name='jim' and s.student_id=t.student_id and t.class_id =c.class_id
我应该在mongodb中更改它吗
------------ ---------- ----------
student_fname student_id takeclass
------------ ---------- ----------
james 1 1,2
jim 2 1,3
class
------------ ----------
class_name class_id
------------ ----------
math 1
science 2
computer 3
let student=mongoclient.collection('student').findOne({student_fname:"jim"})
let classname=mongoclient.collection('class').find({class_id:{$in:student.class_id.split(',')}})
我不知道这是使用mongodb的最佳方式,还是我不应该更改结构并使用其他方式进行查询?
答案 0 :(得分:1)
您可能应该在迁移到MongoDB时更改MySQL结构。
您上面提到的更改后的结构足够好。
您还可以在学生文档中包含 class_name ,在 take_class 中包含 class_id ,以避免调用另一个文档搜索 class_name 。
如果不更改结构,则使用MongoDB毫无意义,因为它的行为类似于关系数据库。
请记住,文档可以嵌套在MongoDB或任何NoSQL DB中,并为我们使用方便。这是在MySQL上使用MongoDB的最大优势之一。