我正在做一个学校项目。我想创建一个用户能够在 GUI 上输入查询的程序。
例如,如果输入以下命令,程序应该验证查询并返回结果。
db.bios.find( { name: { first: 'John', last: 'McCarthy' } } )
我想要一些关于如何验证查询以及如何将查询传递到数据库的建议。
我正在做一个学校项目。我想创建一个用户能够在 GUI 上输入查询的程序。
例如,如果输入以下命令,程序应该验证查询并返回结果。
db.bios.find( { name: { first: 'John', last: 'McCarthy' } } )
我想要一些关于如何验证查询以及如何将查询传递到数据库的建议。
Java MongoDB 驱动程序提供了JSON.parse
将 JSON 字符串解析为DBObject
.
import com.mongodb.util.JSON;
String json = "{ name: { first: 'John', last: 'McCarthy' } }";
DBObject query = (DBObject) JSON.parse(json);
DBObject result = db.bios.find(query);
我建议你使用 Jongo 驱动程序:http: //jongo.org/
我们这样使用它:
Mongo mongo = new Mongo(/*host, port*/);
DB db = mongo.getDB(dbname);
Jongo jongo = new Jongo(db);
User user = jongo.getCollection("users").findOne(" { name: { first: 'John', last: 'McCarthy' }).as(User.class);
但如您所见,它不会验证完整的请求:仅验证 findOne() 方法的参数。Jongo 被称为最接近外壳的驱动程序。
换句话说,我怀疑你的练习在 Java 中很容易完成。也许你可以在python中找到一个“shell驱动程序”,然后java与python对话......