nodejs 操作 mongodb 的问题

2017-04-20 17:10:49 +08:00
 KillThunder

modejs 操作 mongodb 时,如果 mongodb 没有表,是不是会自动创建一个新表?

1510 次点击
所在节点    问与答
7 条回复
stiekel
2017-04-20 17:23:13 +08:00
MongoDB 中其实没有表的概念,只有集合。
集合和数据库,都是在插入一条数据之后自动创建的,这个与 Node 没有关系。
KillThunder
2017-04-20 17:50:37 +08:00
@stiekel 感谢你的回复,那这个集合也应该有个名称吧,就是这个名称我们不需要单独的去创建?直接拿来用就可以了吗?
yanzixuan
2017-04-20 17:58:46 +08:00
@KillThunder 直接用。自动创建。
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 数据库配的权限你能想象吗。。。。
ss098
2017-04-20 19:21:00 +08:00
@jiangzhuo #4 你确定?这是你们公司的流程吧。
jiangzhuo
2017-04-20 19:38:01 +08:00
@ss098 对的我们公司的流程,然后运维 dba 开发全是我,然后关门大吉工商注销了。
我觉得这应该是通用流程吧,不可能随便一个用户上去都能够 drop table ;的
看看之前用阿里云 mongodb 不配权限不关外网端口的那些人,我现在也就相信世界上真的有公司的数据库上起来比他们公司网站还方便。
ss098
2017-04-20 19:42:56 +08:00
@jiangzhuo #6 哈哈,楼主只是问是否会自动创建, MongoDB 确实会自动创建的。

这些步骤属于高级特性 / 开发流程了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX