首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java在system.js - MongoDB中保存javascript函数

问用Java在system.js - MongoDB中保存javascript函数
EN

Stack Overflow用户
提问于 2015-12-04 20:07:06
回答 1查看 854关注 0票数 0

我必须使用Java驱动程序在集合system.js中插入javascript函数(<3.0.0版本)。

system.js是一个特殊的MongoDB集合,用于存储用于重用的javascript函数。我需要存储这个函数来使用map/reduce命令。

在MongoDB shell中,我使用:

代码语言:javascript
复制
db.system.js.save(
   {
     _id: "echoFunction",
     value : function(x) { return x; }
   }
)

使用Java驱动程序,我尝试以字符串的形式插入函数值:

代码语言:javascript
复制
try{
    MongoClient mongoclient = new MongoClient(HOST,PORT);
    DB db = mongoclient.getDB("test");
    System.out.println("Succesfully connected to MongoDB");
    DBCollection jsColl = db.getCollection("system.js");
    DBObject doc = new BasicDBObject("_id","echoFunction").append("value","function(x) {return x}");
    jsColl.insert(doc);
}

DBObject doc被正确地添加到system.js集合中,但是从MongoDB中我的函数被看作是字符串,而不是javascript函数,所以我无法使用map/MongoDB命令。

EN

回答 1

Stack Overflow用户

发布于 2016-04-14 08:47:24

您必须将对象作为org.bson.types.Code值,如下所示

代码语言:javascript
复制
Code functionCode = new Code ("function(x) {return x}") ; 
DBObject doc = new BasicDBObject("_id","echoFunction").append("value",functionCode);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34096582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档