我有一个非常大的网络应用程序。该应用程序分为多个模块。每个模块都可以在Mongodb数据库中创建多个集合。
由于每个模块都可以创建集合,因此它们之间可能存在冲突,因此我正在尝试以优雅的方式“命名”我的集合。
以下是我想要做的
的示例Module1创建这些集合:
module1.items
module1.employees
Module2创建这些集合:
module2.items // Avoid collision with module1
module2.animals
以下是我想避免:
的示例Module1创建这些集合:
module1items
module1employees
Module2创建这些集合:
module2items // Avoid collision with module1
module2animals
现在我想知道使用“。”是否是一个糟糕的实践。在集合名称中。通常,“。”用于从像db.mydatabase.mycollection
这样的集合名称中拆分数据库名称,所以我担心如果使用“。”可能会遇到的错误。命名空间我的集合名称的方法。
[编辑]
以下是我在mongodb网站上发现的一句话:
例如 acme.users 命名空间, acme 是数据库名称,用户是集合名称。句点字符可以出现在集合名称中,因此 acme.user.history 是一个有效的命名空间, acme 作为数据库名称, user.history 作为集合名称。 Reference
将其添加到Stephane Godbillon's answer(提及gridFS),我现在对使用该命名约定感到非常安全。现在我只希望我使用的ODM(mongoose)不会引起任何问题:)。
答案 0 :(得分:3)
是的,你可以毫无问题地做到这一点。事实上,即使GridFS也可以使用这种方式命名的集合(fs.files
和fs.chunks
)。