当从java程序将long值存储在mongodb中时,该值以这种格式存储:NumberLong(n)

Sha*_*han 5 java mongodb nosql

当从java程序存储长值时,mongodb该值以这种格式存储

`NumberLong(n)`.

 db.mycollection.find()

    { "_id" : ObjectId("52bd9475c8ceae448b16c077"), "companyId" : NumberLong(10132), "tableId" : NumberLong(87803), "rowId" : NumberLong(88154), "classNameId" : NumberLong(10129), "classPK" : NumberLong(88153) }
Run Code Online (Sandbox Code Playgroud)

但我想将这些值存储为 10132、87803 等。

Ste*_*nie 4

JavaScript 只有一个数字类型Number,它存储为双精度浮点值。MongoDB 使用的存储BSON格式支持比 JavaScript 更多的原生类型,包括 32 位和 64 位整数。

NumberLong()您在 shell 中看到的值是mongo辅助函数的结果,该函数表示 JavaScript 中的 64 位整数 - 这确认您的数字已按预期保存。如果您通过 Java 程序读回这些值,您会发现它们仍然是 long。

有关详细信息,请参阅Shell中的数据类型mongo