在 MongoDB 生产中,如果某个键的值为空或未提供(可选),我应该使用空字符串值还是应该使用 null 作为值。
1) 使用空字符串与 null 之间有什么优缺点吗?
2)如果我将值设置为 undefined 以从现有文档中删除属性,与让属性值设置为空字符串或 null 相比,有什么优缺点吗?
谢谢
最佳答案
我认为最好的方法是未定义的,因为我建议不要完全包含这个键。 Mongo 不像 SQL 那样工作,在 SQL 中,每一列都必须至少有 null。如果你没有值(value),就不要包含 key 。然后,如果您查询所有文档,如果该键不存在,则它将正常工作,否则将无法正常工作。另外,如果您不使用 key ,则可以节省一点磁盘空间。在 Mongo 中这样做是正确的方法。
function deleteEmpty (v) {
if(v==null){
return undefined;
}
return v;
}
var UserSchema = new Schema({
email: { type: String, set: deleteEmpty }
});
关于MongoDB 空字符串值与 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606323/