有人可以解释吗?
[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”没有打印出来。
这对我来说看起来很出乎意料,也很怪异。
为什么会这样呢?
如果没有var
左侧,newRow
则在外壳中进行评估。这是一个REPL,这就是为什么您在下一行看到JSON的原因。这也将光标向前移动了一个步骤,因此当您newRow
下次尝试访问时,光标位于结果的末尾。
用于var
避免评估。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句