2012-07-26 65 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