在搜索性能方面,在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})
吗?
答案 0 :(得分:2)
Mongodb使用BSON(二进制JSON)来存储文档。 阅读本文以了解json和bson Mongodb - https://www.mongodb.com/json-and-bson
数字(整数和双数)是“基本类型” 在BSON(数据存储在Mongo中的二进制格式),并做 不带额外的开销。
字符串带来一些额外的开销 他们;比特告诉Mongo他们是字符串,并告诉Mongo 他们有多久。
所以数字会比字符串快。
<强>参考强>
答案 1 :(得分:2)