MongoDB 空字符串值与 null 值

标签 mongodb mongoose

在 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/

相关文章:

c# - 在 MongoDB 中保存 POCO 时忽略一个属性,但在序列化为 JSON 时不忽略它

javascript - 无法将js加载到MongoDB中

asynchronous - async nodejs查询和处理结果

angularjs - Mongoose 参数必须是聚合管道运算符

node.js - 如何检查用户是否已存在于express-validator中的customValidators?

javascript - MongoDB模型字段是2个字段相乘的结果

mongodb - 在 Azure 中运行 MongoDB

javascript - 使用 ".create"时如何使用 Mongoose 添加到数组中的对象

node.js - 保存用户的收藏夹

javascript - findByIdAndUpdate $set 不检查唯一性?