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

时间:2013-11-05 19:45:13

标签: 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 );

有可能吗?你可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用server side javascript

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

等等。但是将_id保留为函数的正常名称,因为稍后您将通过_id唤起它。然后你做

db.loadServerScripts();

然后您可以执行查询:

countUsers();