Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 为什么JSON中不带引号的数字被认为是未定义的?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 为什么JSON中不带引号的数字被认为是未定义的?

Node.js 为什么JSON中不带引号的数字被认为是未定义的?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我已经运行了一个node.js服务,它通过mongoosejs将数据持久化到mongodb。我的集合模式有两个字段,一个名为“source_id”,定义为数字,另一个名为“name”,定义为字符串。当我将数据持久化到Mongo时,它在Mongo中看起来是这样的 {"source_id": 1234, "name": "Test Name"} 我可以通过mongoose毫无疑问地检索这些数据,但是当我试图访问source_id字段时,它会被认为是未定义的。我可以毫无疑问地访问“name”。如果我

我已经运行了一个node.js服务,它通过mongoosejs将数据持久化到mongodb。我的集合模式有两个字段,一个名为“source_id”,定义为数字,另一个名为“name”,定义为字符串。当我将数据持久化到Mongo时,它在Mongo中看起来是这样的

{"source_id": 1234, "name": "Test Name"}
我可以通过mongoose毫无疑问地检索这些数据,但是当我试图访问source_id字段时,它会被认为是未定义的。我可以毫无疑问地访问“name”。如果我截取返回的JSON并在1234周围加上引号,它就可以正常工作


mongo集合中的所有字段是否应被视为字符串并被引用,而不考虑数据类型?如果是这样的话,当mongoose在模式中被定义为一个数字时,我如何让它加上双引号?或者我在这里做错了什么,而对于数字字段来说,不带引号的值没有问题?

我怀疑还有其他原因。您是否可以发布您的模式以及如何检索文档,然后访问
源代码id
?您是否可以控制台.log(来自Mongo的数据)以查看是否确实存在?它与JSON无关,如果您键入var a={“source_id”:1234,“name”:“Test name”},它就会工作;您可以访问.source\u id和.name