【发布时间】:2016-03-09 22:07:07
【问题描述】:
假设我通过任意字段category 进行查询,该字段将是四个字符长,所有数字。
所以,它可能是'1234'、'2341'、'9999' 等。
现在,如果我确定此字符串的此数字表示将大于或等于 1000 且小于或等于 9999,是否将此字段设为 number 而不是 string 会使查询更高效的?我相信数字比较比字符串比较更有效,但我不确定它是否会对查询性能产生任何明显影响。我相信,如果查询性能相同,则将此字段设为string 会更好,因为字段类别编号只是一个标识符,因此字符串更能描述正在发生的事情,但更好的查询性能更重要。
因此,我的问题是,如果我在这个任意的 category 字段上进行查询,是按字符串还是按数字查询会更有效,还是没关系?
【问题讨论】:
-
数字总是比字符串更适合搜索。索引在搜索性能方面也发挥着重要作用。
-
问自己这个基本问题。 “字符串'1234'有多少字节?”,然后问“数字
1234将使用多少字节?”。如果您不记得课堂上的内容或阅读过的内容,请查找它,但除非另有说明,否则一个提示是该号码的默认 BSON 类型是Double(这应该是名称中的一个重要提示)。在您对这些结论做出结论之后,“更大或更小的事物处理速度更快吗?” 似乎是合乎逻辑的。然后你就会得到答案。
标签: string mongodb mongoose numbers