用Node.js在MongoDB中存储JS函数的问题

我有一个简单的JS类:

var User = function(id){ this._id = id; this.sayHello = function (){ return "hello"; } } 

然后我使用默认的Node.js驱动程序将其存储在MongoDB中:

 users.insert(new User(1)); 

最后,我检索用户,并尝试执行该function:

 users.findOne({_id:1}, function(err, item) { console.log("Say hello: " + item.sayHello()); }); 

我收到以下错误,这真是令人困惑:

  throw err; ^ TypeError: Object #<Object> has no method 'sayHello' 

我完全失去了这一个。 我的理解是,MongoDB存储JSfunction和属性。 如果情况并非如此,你能推荐我如何解决这个问题吗?

谢谢!

Mongo不能存储函数(代码),只能存储数据。 把你得到的原始数据传递给构造函数,或者考虑像mongoose这样的ODM。

有一个非常具体和有限的条件集,你可以发送mongo函数代码的stringforms,并在服务器上进行评估。 这些logging在MongoDB手册中 。 但是,运行在mongo中的代码的目的是支持复杂的数据查询操作,而不是模拟应用程序逻辑,这就是这个问题所要求的。 应用程序逻辑进入你的node.js模块.js文件。 数据进入数据库。