java - 如何将查询存储在 MongoDB 集合中以便动态执行它们?

标签 java mongodb

我是 MongoDB 的新人。我的界面中有一个“报告”下拉列表,根据所选的报告执行查询。

另一方面,我有一个“报告”集合,例如如下所示:

{
  _id : 1,
  reportName : "Count users",
  queryScript : "db.users.count()"
}, {
  _id : 2,
  reportName : "Find user names",
  queryScript : "db.users.find( {}, { name : true } )"
}, etc

我们必须做一些类似于此伪代码的事情:

Report report = db.reports.find({ id : 1 });
String result = mongoClient.execute ( report.getQueryScript );

这可能吗?你能帮忙解决这个问题吗?

最佳答案

您可以使用server side javascript :

db.system.js.save({
     _id : "countUsers" ,
     value : function (){ return db.test.count(); }
});

等等。但请保留 _id 作为函数的普通名称,因为稍后您将通过 _id 调用它。然后你就可以了

db.loadServerScripts();

之后您可以执行查询:

countUsers();

关于java - 如何将查询存储在 MongoDB 集合中以便动态执行它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797525/

相关文章:

java - 使用 Java 通过 USB gsm 调制解调器发送短信

java - 当依赖类存在多个 bean 时如何 Autowiring ?

java - 如果在 android 中的 SQLite 事务期间,第二个线程尝试在同一个表上进行事务,会发生什么情况?

python - 在 PyMongo 中查找子字符串

javascript - 使用 mongoose 更新数组

mongodb - 如何索引我的集合以使用复合多键索引

java - StringBuilder 在转换为 String 时丢失数据

java - 更新方法不会保存到Grails中的数据库

javascript - MongoDB:更新所有文档中的字符串字段

node.js - 如何在node.js中实现用户定义的规则?