1
var f=function(x){return x*x}
var a={a:1, f:f}
var b = db.test.findOne({a:1})
call b.f(5) --> 25 // works fine within the mongo shell

我不能在 node.js 驱动程序中做同样的事情。甚至试图在 node.js 驱动程序中获取上述对象。node.js 驱动程序中的 Console.log 显示它的存储方式如下:

{ _id: 5267ffd0ef117eab24aa6d73,
  a: 1,
  f:
   { _bsontype: 'Code',
     code: 'function (x){return x*x}',
     scope: {}
   } 
}

如何从 node.js 驱动程序调用该函数? 像这样的电话:

 db.collection('test').findOne({a:1}, function(err, b) {
        console.log(b.f(5));  ---> call of function f does not work.
        db.close();
  });

抛出错误:对象#的属性'f'不是函数

4

0 回答 0