Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Node.js从Mongodb中提取NumberLong数据?_Mongodb_Node.js - Fatal编程技术网

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

如何使用Node.js从Mongodb中提取NumberLong数据?,mongodb,node.js,Mongodb,Node.js,我正在使用Node.js并尝试使用以下代码将时间戳数据存储在Mongodb数据库中: `articleProvider.saveUser({ userID : user, email : email, address : "", time : new Date().getTime(), },function(error,userData){ if(!userData){ callbac

我正在使用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);}
            });
        }
    });`
数据库中存储的数据是(来自mongo shell):

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

{ userID: 'hem',
  email: 'hereshem@gmail.com',
  address: 'Kathmandu',
  time: { low_: -1938088914, high_: 307 },
  _id: 4ebb83dea7dd40990e000002 }
现在我的问题是,如何用NumberLong数据检索字段“time”的值

它给出两个不同字段“低”和“高”的输出。但是,我只想要输出“1320911838254”

有人能帮我吗


谢谢你的回复。但我试着用手机打电话

var value = new Long(low_bits, high_bits).toNumber();
正如Lycha先生所说,但在Node.js平台中,它显示了一个错误“Long is not defined”,即:

ReferenceError:未定义Long
at/home/developer/Desktop/Express/app.js:65:1
在/home/developer/Desktop/Express/public/js/processData.js:76:10
at/home/developer/Desktop/Express/public/js/dbQuery.js:196:16
在[对象]。(/home/developer/node_modules/mongodb/lib/mongodb/collection.js:743:5)
在[object].emit处(events.js:67:17)
在[对象]。(/home/developer/node_modules/mongodb/lib/mongodb/connections/server.js:97:12)
在[object].emit处(events.js:64:17)
在插座上。(/home/developer/node_modules/mongodb/lib/mongodb/connection.js:161:16)
位于Socket.emit(events.js:64:17)
在套接字上可读(net.js:678:14)
如何在node.js中获取长解析器?有什么想法吗

谢谢斯特拉达的回复。但是如何在Mongodb中存储为dateObject呢? 数据类型本身已定义。在Mongodb中是否有任何方法可以更改数据类型?
如何解析它呢?

MongoDB将数字存储为64位对象,但javascript不支持,这就是为什么它们必须具有“低”和“高”。您可以得到如下数字:

var value = new Long(low_bits, high_bits).toNumber();

阅读更多。你应该考虑使用Dead对象。

< P>我在长期实践之后找到了最好的解决方案:

articleProvider.saveUser({
    userID : user,
    email : email,
    address : "",
    time : new Date().getTime().toString(),
    },function(error,userData){
            if(!userData){ callback(error);}
            else{ callback(null,userData);}
        });
    }
});
使用“toString()”将日期对象存储为字符串对象,并在查询后使用“parseInt()”将字符串对象更改为整数值


我认为这真的是一个简单而好的解决方案。

我正在Compass中的Mongo Shell中尝试这样做,我得到:
Long没有定义
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)
var value = new Long(low_bits, high_bits).toNumber();
articleProvider.saveUser({
    userID : user,
    email : email,
    address : "",
    time : new Date().getTime().toString(),
    },function(error,userData){
            if(!userData){ callback(error);}
            else{ callback(null,userData);}
        });
    }
});