Node.js Mongoose模式类型二进制数据类型转换

Node.js Mongoose模式类型二进制数据类型转换,node.js,mongoose,numbers,Node.js,Mongoose,Numbers,我正在阅读猫鼬文档,看到了这行代码: const file2 = new Data({ binData: 72987 }); // {"type":"Buffer","data":[27]} 有人能解释一下他们是如何从72987到达[27]的吗 谢谢 我与mongodb合作,mongoose也有同样的问题 我的理解是,当您创建一个具有缓冲区属性的文档时, mongoose强制转换一个缓冲区,默认javascript缓冲区是一个Int8

我正在阅读猫鼬文档,看到了这行代码:

const file2 = new Data({ binData: 72987 }); // {"type":"Buffer","data":[27]}
有人能解释一下他们是如何从72987到达[27]的吗

谢谢


我与mongodb合作,mongoose也有同样的问题

我的理解是,当您创建一个具有缓冲区属性的文档时, mongoose强制转换一个缓冲区,默认javascript缓冲区是一个Int8Array,即1字节=0到255(256)

因此,当您创建一个编号为72987的缓冲区对象时,它与创建const data=buffer.from([72987])时相同, 这与72987%256=27相同

console.log(Buffer.from([72987]).toJSON().data);
// output
[27]
如果要创建适合72987大小的缓冲区,则必须创建

console.log(new Int32Array([72987]));
// output
Int32Array [72987]
因此,72987%(2^32)=72987

但是,我仍然不知道如何在mongodb中保存大小为32位(4字节)的数据,并在mongoose中检索这些信息。 但从我在mongodb文档中看到的情况来看,可以读取不同长度的字节。

我希望我能帮上忙