【发布时间】: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 之前的构造(或一般的插入),因为您需要确保预先为此类对象分配内存。
【问题讨论】:
-
还有不止“null”和“empty”:stackoverflow.com/questions/68255363/or-with-if-and-in-mongodb/…