我的MongoDB集合包含的文档可以包含一系列子文档。每个子文档都需要一种方法让我能够唯一地识别它,以便我可以替换它或稍后更新它。
如何告诉MongoDB为集合中的每个子文档生成唯一值?
我正在使用C#MongoDB驱动程序。
{
_id: 'gd37dg67dg63782gd78',
name: 'foo'
docs: [
{
idvalue: 'autogenerated',
y: 10
},
{
idvalue: 'autogenerated',
y: 10
},
{
idvalue: 'autogenerated',
y: 10
},
]
}
答案 0 :(得分:3)
MongoDB本身不会为您做到这一点,但是您可以执行许多文档管理器为子文档执行的操作,并在保存之前为它们分配ObjectId
值。这将为C#驱动程序中的每个字段提供一个新的,唯一足够的值:
ObjectId.GenerateNewId()
如果您正在使用文档映射器,请查看它是否支持“嵌套文档”。很有可能它会毫不费力地为你做这件事。