Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 在mongoose中使用数字而不是字符串作为枚举模式是否更好?_Mongodb_Mongoose - Fatal编程技术网

Mongodb 在mongoose中使用数字而不是字符串作为枚举模式是否更好?

Mongodb 在mongoose中使用数字而不是字符串作为枚举模式是否更好?,mongodb,mongoose,Mongodb,Mongoose,就搜索性能而言,在mongoose中使用数字而不是字符串作为枚举模式是否更好 例如,我有: status: { type: String, enum: ['active', 'inactive', 'disabled', 'deleted'], default: 'inactive' }, //status: { // type: Number, // enum: [0, 1, 2, 3], // default: '1'

就搜索性能而言,在mongoose中使用数字而不是字符串作为枚举模式是否更好

例如,我有:

 status: {
     type: String, 
     enum: ['active', 'inactive', 'disabled', 'deleted'], 
     default: 'inactive'
 },

 //status: {
 //    type: Number, 
 //    enum: [0, 1, 2, 3], 
 //    default: '1'
 //},   

db.col.find{status:'active'}是否比db.col.find{status:1}慢?

Mongodb使用BSONBinary JSON存储文档。 阅读本文了解json和bson Mongodb-

数字、整数和双精度是基本类型 在BSON中,数据以二进制格式存储在Mongo和do中 不要随身携带额外的开销

弦乐会带来一些额外的开销 他们位告诉Mongo它们是字符串,位告诉Mongo 它们有多长

所以数字比字符串快

参考文献


Mongodb使用BSONBinary JSON存储文档。 阅读本文了解json和bson Mongodb-

数字、整数和双精度是基本类型 在BSON中,数据以二进制格式存储在Mongo和do中 不要随身携带额外的开销

弦乐会带来一些额外的开销 他们位告诉Mongo它们是字符串,位告诉Mongo 它们有多长

所以数字比字符串快

参考文献

正如在和类似的问题中一样,从性能的角度来看,当使用索引时,这在很大程度上是可以忽略的,但是数字会快一点。 如果您仍然想使用数字,您可以将虚拟属性添加到模式中,该模式将数字枚举转换为描述性字符串,这样您就可以在某种意义上充分利用这两个世界。

与其他类似的问题一样,从性能角度来看,使用索引时,这在很大程度上是可以忽略的,但数字会更快一些。 如果您仍然想使用number,您可以向模式中添加一个虚拟属性,该虚拟属性可以从数字枚举转换为描述性字符串,这样您就可以在某种意义上兼得这两个方面的优点