如何在 MongoDB 集合中存储描述文档的元数据?

eri*_*oco 7 database indexing metadata mongodb

在 MongoDB 中存储描述集合的元数据的最佳方法是什么?

我有一个集合,其中包含任意数量的文档。当我创建新文档时,我想根据集合中当前的文档数量分配一个新的临时名称(字符串),例如“Doc 1”、“Doc 2”……由于可以删除文档,只需执行 count() 不会产生有用的结果。

一种选择是将描述集合的元数据存储在不同的集合中,但这似乎很尴尬。

由于 Mongo 是无模式的,我可以将集合的元数据保存在集合本身中,也许保存在名为“元数据”的文档中。在这种情况下,我如何快速访问该文档?我是否需要为“元数据”建立索引以立即获取它,而无需 O(n) 搜索时间?

有没有比我在上一段中描述的更标准或更简单的方法?将来我可能会得到更多元数据,而不仅仅是计数。

Chi*_*ang 4

您可以检查此链接https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/

根据上面的链接,我的观点是,只需将它们存储在metadata以以下格式命名的集合中:

{
    '_id':'collection1'
    'c': 0,
    'other metadata1': 'foo',
    'other metadata2': 'bar'
}
Run Code Online (Sandbox Code Playgroud)

然后你可以根据集合名称获取这些元数据。如果你想向这个文档添加一个字段,只需使用$set和 update 即可。