Node.js 在mongodb中使用函数保存javascript对象

Node.js 在mongodb中使用函数保存javascript对象,node.js,mongodb,Node.js,Mongodb,我试图用函数保存javascript对象,但遇到了一个错误。代码如下: var mongo = require('mongodb'); createObject = function(){ var data = {_id:1,"name":"object", "fun":new mongo.Code("function fun() {print(1)}")}; db.collection("objects").insert(data,function(err,result){

我试图用函数保存javascript对象,但遇到了一个错误。代码如下:

var mongo = require('mongodb');
createObject = function(){
var data = {_id:1,"name":"object", 
   "fun":new mongo.Code("function fun() {print(1)}")};
   db.collection("objects").insert(data,function(err,result){   
    console.log(err);
    console.log(result);
   });
}

getObject = function(){
 var f = db.collection("objects").findOne();
 f.fun(); 
}
错误是:

    throw err;
          ^
TypeError: Object #<Object> has no method 'fun'
抛出错误;
^
TypeError:对象#没有“fun”方法
当我检查mongodb时,它正在保存“fun”功能。但从mongo检索时未执行


提前感谢。

我还没有解决运行函数的问题,但是我注意到代码中有一个错误,
getObject
应该是这样的

getObject = function(){
 db.collection("objects").findOne(function(err, f) {
   console.log(f);
   // f.fun(); 
 });
}

您可以将函数提取为字符串,如果确实需要,可以使用
eval
来运行它?我不知道(我还没有找到)更好的答案。

我还没有解决运行函数的问题,但我注意到代码中有一个错误,
getObject
应该是这样的

getObject = function(){
 db.collection("objects").findOne(function(err, f) {
   console.log(f);
   // f.fun(); 
 });
}

您可以将函数提取为字符串,如果确实需要,可以使用
eval
来运行它?我不知道(我还没有找到)更好的答案。

我也尝试过这个,但没有帮助,我只是尝试在mongodb shell中运行它,它成功了。@lopisan是的,这在mongo shell中运行,但不起作用我正在尝试在node.js中执行它,但它不起作用我也尝试过,但没有帮助我只是尝试在mongodb shell中运行它,它起作用了..@lopisan是的,这在mongo shell中工作,但不是我正在尝试在node.js中执行它,它不工作使用“eval”实际上解决了问题。非常感谢@Lopisan使用“eval”实际上解决了问题。非常感谢@Lopisan