3

我有一个相当大的网络应用程序。该应用程序分为多个模块。每个模块可以在 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是数据库名称,users是集合名称。集合名称中可以出现句点字符,因此acme.user.history是一个有效的命名空间,其中acme作为数据库名称,user.history作为集合名称。 参考

将其添加到Stephane Godbillon 的答案(提到 gridFS)中,我现在对使用该命名约定感到非常安全。现在我只希望我使用的 ODM (mongoose) 不会造成任何问题:)。

4

1 回答 1

4

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

于 2013-05-15T14:50:04.560 回答