node.js + mongodb建表问题 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

node.js + mongodb建表问题

2016-02-14 11:58:44 2014 1

我在做一个API接口管理系统,第一次用node+mongodb遇到了些问题,特此请教大家。
问题是这样的。API可以分组。比如A B C三个组。每个组下面有不同的请求。我存储的时候是A B C 存储在Cat collection中 各个请求名称存储在ReqName collection中。其中ReqName中有个catId的DbRef指向A B C。来判断这个请求所属的组。现在问题来了 我想读取组的时候就把组下面的请求都读出来,在node中怎么操作?谢谢!

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:42:32

    根据你在评论中回复我的例子,你不应该把学生和班级分开来,MongoDB的做法不是这样的。
    我来举个例子吧。

    Classes Collection
    screenshot
    你应该把学生们作为一个数组,聚合在班级collection中。
    操作
    我以MongoDB shell为例。
    获取学生
    screenshot
    添加学生
    screenshot
    修改学生
    screenshot
    删除学生
    screenshot
    集合是动态模式的。这意味着一个集合里面的文档可以是各式各样的。例如,下面两个文档可以存储在同一个集合里面:
    `
    {"greeting": "Hello world!"}
    {"foo": 5}
    `

    需要注意的是,上面的文档不光值的类型不同(一个字符串一个整数),它们的键也完全不同。因为集合里面可以放置任何文档,随之而来的一个问题是:还有必要使用多个集合吗?这的确值得思考:既然没有必要区分不同类型文档的模式,为什么还要使用多个集合呢?这里有几个重要的原因。
    •如果把各种各样的文档不加区分地放在同一个集合里,无论对开发者还是管理员来说都将是噩梦。开发者要么确保每次查询只返回特定类型地文档,要么让执行查询的应用来处理所有不同类型的文档。如果查询博客文章时还要剔除含有作者数据的文档,这会带来很大困扰。
    •在一个集合里查询特定类型的文档在速度上也很不划算,分开查询多个集合要快得多。例如,假设集合里面一个名为“type”的字段用于指明文档是skim、whole还是chunkey monkey。那么,如果从一个集合中查询这三种类型的文档,速度会很慢。但如果将这三种不同类型的文档拆分为三个不同的集合,每次只需要查询相应的集合,速度快得多。
    •把同种类型的文档放在一个集合里,数据会更加集中。从一个只包含博客文章的集合里查询几篇文章,或者从同时包含文章数据和作者数据的集合里查出几篇文章,相比之下,前者需要的磁盘寻道操作更少。
    •创建索引时,需要使用文档的附加结构(特别是创建唯一索引时)。索引是按照集合来定义的。在一个集合中只放入一种类型的文档,可以更有效地对集合进行索引。
    上面这些重要原因促使我们创建一个模式,把相关类型的文档组织在一起,尽管MongoDB对此并没有强制要求。

    0 0
相关问答

2

回答

阿里云 MongoDB 云数据库技术优势是什么?

2021-12-14 22:53:17 492浏览量 回答数 2

1

回答

阿里云 MongoDB 云数据库技术优势

2021-01-08 20:18:04 530浏览量 回答数 1

0

回答

云数据库 MongoDB版使用前须知

2017-10-30 16:04:04 1263浏览量 回答数 0

0

回答

云数据库 MongoDB 版的使用前须知

2017-10-30 15:30:35 1129浏览量 回答数 0

0

回答

如何在云数据库 MongoDB中重置密码

2017-10-30 16:47:40 1482浏览量 回答数 0

0

回答

如何在云数据库MongoDB 版中获取连接实例七要素

2017-10-30 16:08:23 1449浏览量 回答数 0

0

回答

如何在云数据库 MongoDB 版获取连接实例七要素

2017-10-30 15:37:51 1618浏览量 回答数 0

0

回答

如何在云数据库MongoDB 版中设置白名单

2017-10-30 16:06:28 2205浏览量 回答数 0

0

回答

如何在云数据库 MongoDB 版设置白名单

2017-10-30 15:35:30 1942浏览量 回答数 0

0

回答

云数据库 MongoDB 版支持哪些语言的客户端进行连接?

2017-10-30 17:43:07 1499浏览量 回答数 0
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式
立即下载
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载