MongoDB中用户特定的数据库

我目前正在Node js和MongoDB上开发一个库存pipe理软件。 我对MongoDB相当陌生,在我的大部分项目中都曾在Oracle和MySQL中工作过。

是否有可能为每个使用我的软件的客户创build一个单独的数据库模式,每个客户只能访问他的数据库模式和集合副本?

在Oracle数据库中select数据的等价物将是从User1.table中select*,从User2.table中select*等

另外,如果可能的话,如何使用像mongoose这样的节点js mongo db客户端来实现呢?

我查看了MongoDB文档,但主要讨论了如何将用户添加到数据库中进行授权。

我很抱歉,如果这似乎是一个愚蠢的问题,但编号欣赏,如果有人能指出我在这个正确的方向。

在开始为项目开发投入大量时间之前,请查看您尝试构build的场景的其他可能方法。

我做了一个快速search,发现了一些类似的情况下的其他线程:

  • MongoDB数据库与集合

  • MongoDB Web应用程序 – 每个用户的数据库

  • 有关mongoose数据库创build的附加信息

每当你调用mongoose对象上的connect方法,你要么连接到一个现有的数据库,要么你创build它,如果它不存在。

你可以有一个函数,允许你传入一个带有名字的参数名称并以编程方式创build数据库:

 function createDatabase(name) { var conn_string = 'mongodb://localhost/'; if (typeof name == 'string') { conn_string += name; }else{ return false; } mongoose.connect(conn_string); } 

另外,请注意,当您首次在特定数据库的集合中插入logging时,将会创build一个数据库。

仅连接到数据库是不够的,您还必须插入一条logging。

按照我以前的例子,你也可以传递一个模式参数给函数,为每个用户的configuration文件定制,并在连接到数据库之后触发一个插入语句。