自动生成MongoDB文档中集合中子/子文档的值

时间:2012-07-18 05:44:58

标签: c# mongodb

我的MongoDB集合包含的文档可以包含一系列子文档。每个子文档都需要一种方法让我能够唯一地识别它,以便我可以替换它或稍后更新它。

如何告诉MongoDB为集合中的每个子文档生成唯一值?

我正在使用C#MongoDB驱动程序。

{
    _id: 'gd37dg67dg63782gd78',
    name: 'foo'
    docs: [
        {
            idvalue: 'autogenerated',
            y: 10
        },
        {
            idvalue: 'autogenerated',
            y: 10
        },
        {
            idvalue: 'autogenerated',
            y: 10
        },
    ]
}

1 个答案:

答案 0 :(得分:3)

MongoDB本身不会为您做到这一点,但是您可以执行许多文档管理器为子文档执行的操作,并在保存之前为它们分配ObjectId值。这将为C#驱动程序中的每个字段提供一个新的,唯一足够的值:

ObjectId.GenerateNewId()

如果您正在使用文档映射器,请查看它是否支持“嵌套文档”。很有可能它会毫不费力地为你做这件事。