0
我正在尝试在我的nodejs/node-mongodb-native项目中使用MongoDB server-side JavaScript,只是感兴趣如何将我的自定义函数保存在MongoDB的全局上下文中并从db.eval
脚本访问它们?如何在MongoBD的V8引擎中创建可通过db.eval访问的全局对象?
比方说,我有以下单元的功能:
var myDocumentUtils = {
doStuff: function (doc) {
// do stuff with doc ...
return doc;
}
}
而且我已经存储在db.system.js
收集下面的JavaScript函数:
function processDocument (id) {
var doc = db.myCollection.findOne({ _id : ObjectId(id)});
doc = myDocumentUtils.doStuff(doc); // need access to global myDocumentUtils object
db.myCollection.save(doc);
return doc;
};
我从我像下面的NodeJS应用程序中执行processDocument
功能:
db.eval('processDocument(54382cb3233283cd3331ca1d)', function (err, doc) {
if (err) throw err;
});
所以我的问题是如何在全局的MongoDB V8上下文中保存myDocumentUtils
以便在db.eval函数中访问?
感谢您的响应,但我不能将JavaScript对象传递给eval函数,因为我使用nodejs。有没有解决方案呢? – Erik 2014-10-11 13:21:56
@Erik,因为您可以将'processDocument'存储到数据库中,您是否还可以存储用于返回'myDocumentUtils'的另一个函数?这个函数可以由'processDocument'调用。 – Wizard 2014-10-11 14:01:02
你能提供一些例子吗,因为我有点不明白你的建议:( – Erik 2014-10-11 14:13:35