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'不是函数