【问题标题】:Is there benefit to adding a document identifier in MongoDB?在 MongoDB 中添加文档标识符有什么好处?
【发布时间】:2018-12-15 10:12:47
【问题描述】:

我正在使用 mongodb 来存储测试数据。将创建测试用例、测试运行和测试数据的 3 类文档。

测试数据将包含名为 testrun_id 和 testcase_id 的键,它们将用作测试数据信息的双向参考。

我想知道是否值得在每种类型的文档中添加一个键来指定它的文档类型。

例如:

{
    _id : ObjectID(testdata ID),
    testcase_id : ObjectID(testcase ID),
    testrun_id :  ObjectID(testrun ID),
    docType : "3",
    data1 : 1234,
    data2 : 5678
}
// Another document
{
    _id : ObjectID(testdata ID 2),
    testcase_id : ObjectID(testcase ID),
    testrun_id :  ObjectID(testrun ID),
    docType : "3",
    data1 : 1234,
    data2 : 5678
}

其中 docType 可以是 1 用于测试用例,2 用于测试运行,3 用于测试数据。

我认为这将有助于更快地获取所有特定类型的文档?或者 MongoDB 已经具备这样的功能了吗?

【问题讨论】:

  • 很难在没有更多上下文的情况下发表评论。但是为什么不将这三种类型的文档保存在三个单独的集合中呢?

标签: database mongodb collections document


【解决方案1】:

文档(_id)标识符将由 mongodb 数据库驱动生成。

如果您想覆盖它,您可以在创建文档时从您的应用程序发送它。


它还确保为集合中的每个文档分配一个唯一标识符并且不为空,这意味着它是文档的主键。

在你的情况下,如果你有 testcase_id 作为唯一的 id,你可以在 _id 中发送它,但要确保它始终是唯一的并且不为空。

更多信息可以看这个链接:
https://www.mongodb.com/blog/post/generating-globally-unique-identifiers-for-use-with-mongodb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    相关资源
    最近更新 更多