2012-07-26 62 views
1

我在文档中有一些日期并试图操作它们。我期待的JavaScript支持标准的日期方法,如toISOString(),但令我惊讶的是我得到一个错误Database command 'mapreduce' failed: (assertion: 'invoke failed: JS Error: TypeError: entry.start.toISOString is not a function nofile_b:0'; assertionCode: '9004'; errmsg: 'db assertion failure'; ok: '0.0').有没有MongoDB的地图减少JavaScript的参考?

我怎样才能找出什么是由Map Reduce运行环境支持?

+0

你确定'entry.start'是一个Date吗? – 2012-07-26 07:22:05

+0

@ muistooshort是的。我可以调用'entry.start.toUTCString()'而不是'entry.start.toISOString()' – Roman 2012-07-26 07:25:16

回答

2

我发现调试map reduce的最简单方法是分解组件并使用控制台。

不幸的是,它似乎在嵌入式SpiderMonkey的引擎没有toISOString

> d = new Date() 
> d.to<tab-complete> 
    d.toDateString(  d.toLocaleString(  d.toTimeString(
    d.toGMTString(  d.toLocaleTimeString( d.toUTCString(
    d.toLocaleDateString( d.toString(   d.tojson(

所以你必须生成你自己的,我被骗了,通过使用以JSON和使用SUBSTR:

> d.tojson().substr(9, 24) 
    2012-07-26T09:42:11.403Z