gpt4 book ai didi

mongodb - 使用MongoDB管理架构变更

转载 作者:行者123 更新时间:2023-12-01 22:15:40 24 4
gpt4 key购买 nike

生产后文档结构发生变化时如何处理。

假设我有500个这样的文档:

{
name: ‘n1’
height: ‘h1’
}

以后如果我决定以以下格式添加所有文档:
{
name: ‘n501’
height: ‘h501’
weight: ‘w501’
}

我在Go中使用 cursor.All(&userDetails)进行解码(反序列化),以获取结构 userDetails中查询的输出。如果我相应地修改其他文档和 userDetails的结构,那么前500个文档会失败吗?

如何应对这一变化?

最佳答案

如果将新字段添加到结构中,则查询旧文档不会失败。由于旧文档没有在MongoDB中保存新字段,因此查询它们将为您提供struct值,其中新字段将为其zero value。例如。如果类型为string,则为空字符串"";如果为int字段,则为0

如果让您感到困扰的是旧文档没有这个新字段,则可以在mongo控制台中扩展它们,如下所示:

db.mycoll.updateMany({ "weight": {$exists:false} }, { $set: {"weight": ""} } )

此命令将新的 weight字段添加到不存在该字段的旧文档中,并将其设置为空字符串。

关于mongodb - 使用MongoDB管理架构变更,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60452156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com