使用“。”是不好的做法。 Mongodb集合名称中的符号?

时间:2013-05-15 14:27:50

标签: mongodb

我有一个非常大的网络应用程序。该应用程序分为多个模块。每个模块都可以在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)不会引起任何问题:)。

1 个答案:

答案 0 :(得分:3)

是的,你可以毫无问题地做到这一点。事实上,即使GridFS也可以使用这种方式命名的集合(fs.filesfs.chunks)。