Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
String MongoDB中字符串与数字的比较效率_String_Mongodb_Mongoose_Numbers - Fatal编程技术网

String MongoDB中字符串与数字的比较效率

String MongoDB中字符串与数字的比较效率,string,mongodb,mongoose,numbers,String,Mongodb,Mongoose,Numbers,假设我通过一个任意字段category进行查询,该字段的长度为四个字符,包含所有数字 因此,它可能是'1234','2341','9999'等等 现在,如果我确定此字符串的数字表示将大于或等于1000,小于或等于9999,那么将此字段设置为数字而不是字符串是否会提高查询效率?我相信数字比较比字符串比较更有效,但我不确定它是否会对查询性能产生任何明显的影响。我认为,如果查询性能相同,则将此字段设置为字符串将更好,因为字段类别编号只是一个标识符,因此字符串更能描述正在发生的事情,但更好的查询性能更为

假设我通过一个任意字段
category
进行查询,该字段的长度为四个字符,包含所有数字

因此,它可能是
'1234'
'2341'
'9999'
等等

现在,如果我确定此字符串的数字表示将大于或等于1000,小于或等于9999,那么将此字段设置为
数字
而不是
字符串
是否会提高查询效率?我相信数字比较比字符串比较更有效,但我不确定它是否会对查询性能产生任何明显的影响。我认为,如果查询性能相同,则将此字段设置为
字符串将更好,因为字段类别编号只是一个标识符,因此字符串更能描述正在发生的事情,但更好的查询性能更为重要

因此,我的问题是,如果我在这个任意的
类别
字段上进行查询,那么按字符串或数字进行查询会更有效吗?或者,这不重要吗?

根据,索引以二进制形式表示为BSON文档


效率可以通过使其变小(索引所需内容)而不是使用数据类型来获得。

在搜索时,数字总是比字符串好。索引在搜索性能中也起着重要作用。问问自己这个基本问题。“字符串“1234”中有多少字节?”然后询问“数字1234将使用多少字节”。如果您无法从类或阅读的内容中记住这一点,请查找它,但有一个提示是该数字的默认BSON类型,除非另有指定,否则为
Double
(这应该是名称中的一个大提示)。在你对这些问题得出结论之后,从“大的或小的事情处理得更快吗?”中,什么似乎是合乎逻辑的呢。然后你会得到你的答案。