有人能解释一下吗?
[test] 2014-01-31 18:40:36.243 >>> var rowNEW = db.people.find( { "name" : "joe", "age" : 20} );
[test] 2014-01-31 18:40:42.853 >>> rowNEW.forEach(function() { print ('FOUND ROW'); } );
FOUND ROW
[test] 2014-01-31 18:40:47.163 >>> rowNEW = db.people.find( { "name" : "joe", "age" : 20} );
{ "_id" : ObjectId("52ec316d1d21069b6061b554"), "name" : "joe", "age" : 20 }
[test] 2014-01-31 18:40:55.73 >>> rowNEW.forEach(function() { print ('FOUND ROW'); } );
[test] 2014-01-31 18:40:57.533 >>>
第一次打印出'FOUND ROW' 第二次'FOUND ROW'未打印 这对我来说非常出乎意料和奇怪 为什么它会这样?
答案 0 :(得分:4)
如果没有var
左侧newRow
,则在shell中进行评估。这是一个REPL,这就是你在下一行看到JSON的原因。这也将光标向前移动一步,因此当您下次尝试访问newRow
时,光标位于结果的末尾。
使用var
来避免评估。