【问题标题】:User specific database in MongoDBMongoDB中的用户特定数据库
【发布时间】:2015-04-22 03:16:18
【问题描述】:

我目前正在使用 Node js 和 MongoDB 开发库存管理软件。我对 MongoDB 很陌生,我的大部分项目都在 Oracle 和 MySQL 工作过。

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

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

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

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

如果这似乎是一个愚蠢的问题,我深表歉意,但如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

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

    我在 SO 上进行了快速搜索,发现了一些具有类似场景的附加线程:

    每当您在mongoose 对象上调用connect 方法时,您要么连接到现有数据库,要么正在创建它以防它不存在。

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

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

    另外,请注意,当您第一次在特定数据库的集合中插入记录时,将创建一个数据库。

    只连接数据库是不够的,还要插入一条记录。

    根据我之前的示例,您还可以将架构参数传递给函数,根据每个用户的个人资料进行定制,并在连接到该数据库后触发插入语句。

    【讨论】:

    • 非常感谢!这有帮助:-)
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多