2013-08-21 17 views
0

如果我把一個變量與一個未定義的值成的MapReduce()的「範圍」參數,那麼,地圖功能將接收變量具有空值(而不是未定義的值)。那是對的嗎?mongodb的 - 的MapReduce()範圍 - 未定義的值被轉換成空值

例如(JavaScript的骨架爲 「蒙戈」 命令):

db.mycol.mapReduce(
         f_map, 
         f_reduce, 
         { 
          scope: { myvar: undefined} 
         } 
       ); 

function f_map() 
{ 
    print("myvar: " + myvar); 
} 

這將打印 「MYVAR:空」(而不是 「MYVAR:未定義」)到服務器日誌(入replicaset構件日誌)。未定義值自動轉換通過MapReduce的時候爲空值()?

回答

1

undefined值在mongodb的v8 engine中被轉換爲null值。

這樣做的原因是爲了保持向後兼容舊的蜘蛛猴的JS引擎,而不是打破對這種行爲依賴現有的代碼。