如何使用 Node.js 从 Mongodb 中提取 NumberLong 数据?

Hem*_*tha 5 mongodb node.js

我正在使用 Node.js 并尝试使用以下代码将时间戳数据存储在 Mongodb 数据库中:

`articleProvider.saveUser({
        userID : user,
        email : email,
        address : "",
        time : new Date().getTime(),
        },function(error,userData){
                if(!userData){ callback(error);}
                else{ callback(null,userData);}
            });
        }
    });`
Run Code Online (Sandbox Code Playgroud)

数据库中存储的数据是(来自mongo shell):

{ "userID" : "hem", "email" : "hereshem@gmail.com", "address" : "Kathmandu", "time" : NumberLong("1320911838254"), "_id" : ObjectId("4ebb83dea7dd40990e000002") }
Run Code Online (Sandbox Code Playgroud)

但是如果我在 node.js 控制台中检索数据,输出将变为:

{ userID: 'hem',
  email: 'hereshem@gmail.com',
  address: 'Kathmandu',
  time: { low_: -1938088914, high_: 307 },
  _id: 4ebb83dea7dd40990e000002 }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何使用 NumberLong 数据检索字段“时间”的值?

它给出具有两个不同字段“low_”和“high_”的输出。但是,我只想输出 "1320911838254" 。

谁能帮我?


感谢您的回复。但我尝试使用获取号码

var value = new Long(low_bits, high_bits).toNumber();
Run Code Online (Sandbox Code Playgroud)

正如 Lycha 先生所发布的,但在 Node.js 平台中,它显示错误“Long is not Defined”,如下所示:

var value = new Long(user.time.low_, user.time.high_).toNumber();
Run Code Online (Sandbox Code Playgroud)
ReferenceError: Long is not defined
at /home/developer/Desktop/Express/app.js:65:1
at /home/developer/Desktop/Express/public/js/processData.js:76:10
at /home/developer/Desktop/Express/public/js/dbQuery.js:196:16
at [object Object].<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/collection.js:743:5)
at [object Object].emit (events.js:67:17)
at [object Object].<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/connections/server.js:97:12)
at [object Object].emit (events.js:64:17)
at Socket.<anonymous> (/home/developer/node_modules/mongodb/lib/mongodb/connection.js:161:16)
at Socket.emit (events.js:64:17)
at Socket._onReadable (net.js:678:14)
Run Code Online (Sandbox Code Playgroud)

如何在node.js中获取长解析器?任何想法?

并感谢斯特拉达的回应。但是如何在 Mongodb 中存储为 dateObject 呢?DataType 本身是定义的。有没有什么方法可以改变Mongodb中的数据类型?以及如何解析它?

Hem*_*tha 3

经过长时间的实践,我找到了最好的解决方案:

articleProvider.saveUser({
    userID : user,
    email : email,
    address : "",
    time : new Date().getTime().toString(),
    },function(error,userData){
            if(!userData){ callback(error);}
            else{ callback(null,userData);}
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

使用“toString()”将日期对象存储为字符串对象,并在查询后使用“parseInt()”将字符串对象更改为整数值。

我认为这是非常简单且很好的解决方案。