8

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

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

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

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

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

4

2 回答 2

3

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

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

{
    '_id':'collection1'
    'c': 0,
    'other metadata1': 'foo',
    'other metadata2': 'bar'
}

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

于 2012-11-02T22:49:59.413 回答
2

我们经常做的是将设置或元数据等放在一个单独的单文档集合.settings 中。例如。如果您的数据位于集合“用户”中,我将元数据放在“user.settings”中

于 2013-05-24T12:32:51.967 回答