modejs 操作 mongodb 时,如果 mongodb 没有表,是不是会自动创建一个新表?
1
stiekel 2017-04-20 17:23:13 +08:00 1
MongoDB 中其实没有表的概念,只有集合。
集合和数据库,都是在插入一条数据之后自动创建的,这个与 Node 没有关系。 |
2
KillThunder OP @stiekel 感谢你的回复,那这个集合也应该有个名称吧,就是这个名称我们不需要单独的去创建?直接拿来用就可以了吗?
|
3
yanzixuan 2017-04-20 17:58:46 +08:00 1
@KillThunder 直接用。自动创建。
|
4
jiangzhuo 2017-04-20 18:52:59 +08:00
楼上都说自动创建我差点就信了。。
一般情况下都是 1. 开发告诉 dba 要用哪些 collection , collection 的各种配置,是否 capped/capped 的大小 /是否自动创建_id 索引 /使用的 validator 等等参数。运维把数据库的 collection 创建好之后。 2.dba 再给对应的 user 或者 role 加上这个 collection 的权限。 3. 然后程序使用特定用户才能访问这个 collection 。 当然一般 dba 都很懒直接给用户数据库的内建的 readWrite 角色(其实我见过的 dba 都懒得别说用户角色了有时候连用户都懒得创建,让运维不给外网开端口解决),这样用户是有在数据库中 createCollection 权限的当然也有 dropCollection 的权限,另外还有 dropIndex createIndex 的权限。。。如果这是一个 sql 数据库的 dba 给 sql 数据库配的权限你能想象吗。。。。 |