Mongodb 我应该使用_0、_1、_2。。。作为字符串或0、1、2。。。作为常量列表的_id值的数字?

Mongodb 我应该使用_0、_1、_2。。。作为字符串或0、1、2。。。作为常量列表的_id值的数字?,mongodb,Mongodb,最初,我有以下形式的文档:资源:{wood:123,coal:1,silver:5}和盒子:{wood:999,coal:20}。在这个例子中,我的服务器的代码测试(相当有效)如果有足够的空间放木头(现在是),足够的空间放煤(现在是),足够的空间放银子(没有,如果空间为0,我甚至不把它放在盒子里),那么一切都很好 我想将_id值从wood、coal、silver缩短为数字表示,这反过来占用更少的空间,在与客户机/服务器通信时,信息包更小,等等 我很好奇使用0,1,2…作为_id或_0,_1,_2

最初,我有以下形式的文档:资源:{wood:123,coal:1,silver:5}和盒子:{wood:999,coal:20}。在这个例子中,我的服务器的代码测试(相当有效)如果有足够的空间放木头(现在是),足够的空间放煤(现在是),足够的空间放银子(没有,如果空间为0,我甚至不把它放在盒子里),那么一切都很好

我想将_id值从wood、coal、silver缩短为数字表示,这反过来占用更少的空间,在与客户机/服务器通信时,信息包更小,等等

我很好奇使用0,1,2…作为_id或_0,_1,_2。。。 使用数字或字符串的优点是什么?查询数字是否更快?(忽略索引速度)


我手动添加这些值,顺便说一句:p

表示整数所需的字节数可以通过取整数并除以256来找到。表示字符串所需的字节数是字符串中的字符数

只需要一个字节来表示数字
87
202
,但需要两个和三个字节来表示相同的字符串(如果使用下划线,还需要一个字节)


在这里,整数几乎肯定是您想要的。但是,如果您担心导线尺寸过大,则可能会通过缩短关键帧看到收益。您可以使用
w
c
s
,而不是使用
wood
coal
silver
,这样可以为每次提取的记录节省11个字节。

对。我想将0、1、2作为字符串,但因为不能以数字开头,所以我在其中添加了下划线。我可能有木头和羊毛,所以把第一个字符放在上面是不安全的:)谢谢你的回答。