【问题标题】:Mongo field null vs emptyMongo 字段空 vs 空
【发布时间】:2022-01-01 09:47:00
【问题描述】:

SQL 的惯例是在字段不存在时将其保留为空。

Mongo 中是否有约定将该字段保留为 null 或在未设置字段时使用空值(例如空数组)?

具体来说,我正在使用带有official Go mongo driver 的 Go 和 Mongo 4.2。

例如,

type A struct {
    ID string `bson:"_id"`

    Bs []B `bson:"bs"`
}

type B struct {
    ID string `bson:"_id"`
}

如果A 没有任何Bs(Bs 为空),应将其定义为零值([]B(nil))还是空数组([]B{})。

注意这会影响数据的存储方式:

零值

{
    "_id" : ...,
    "bs" : null
}

vs 为空值

{
    "_id" : ...,
    "bs" : [ ]
}

以及InsertOne 之前的构造(或一般的插入),因为您需要确保预先为此类对象分配内存。

【问题讨论】:

标签: mongodb go


【解决方案1】:

在 GO 中,字符串不能为空,但指向字符串的指针可以为空,所以只需使用指针即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2011-08-02
    • 2016-08-29
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多