【发布时间】:2012-08-19 01:41:14
【问题描述】:
我正在访问 mongo(通过 mongoose customer.find())并找回一些看起来像
[{ _id: 5029a09e099fb5095fdb2d73,
clientId: 22,
company: 'X',
email: 'X@Y.ca',
firstName: 'X',
lastName: 'Y',
quality: 'Sold',
address:
{ phone: '',
alt: '',
street1: '',
street2: '',
city: '',
state: 'Ontario',
country: 'Canada',
code: '' },
comments: []
}]
请注意,这是直接来自 console.log 的结果。这不是我要输入的内容,这是来自 mongoDB 的结果。 _id 是由 mongo 以这种形式返回的,与问题完全无关。
当我尝试时
console.log(customer[0])我明白了
{ _id: 5029a09e099fb5095fdb2d73,
clientId: 22,
company: 'X',
email: 'X@Y.ca',
firstName: 'X',
lastName: 'Y',
quality: 'Sold',
address:
{ phone: '',
alt: '',
street1: '',
street2: '',
city: '',
state: 'Ontario',
country: 'Canada',
code: '' },
comments: []
}
如预期的那样
当我尝试console.log(customer[0].quality) 时,我得到undefined
当我尝试console.log(customer[0].email) 或任何其他方法时,它工作正常,我得到了预期值。
据我所知,质量不是一个保留字,我是否遗漏了什么?
【问题讨论】:
-
呃,
_id不应该是一个字符串吗?你周围没有引号。 -
@Amaan 是对的,上面的结果是 SyntaxError: identifier started after numeric literal
-
从console.log复制粘贴
-
@Amaan 是对的。
-
你试过
for(var prop in customer[0]) { console.log(prop); }吗?你在输出列表中看到quality了吗?
标签: javascript node.js mongodb