如何仅使用 java-mongo-driver 触发 mongo 本机查询。
没有Spring-Data 或 EclipseLink 或 Hibernate OGM,仅使用java-mongo-driver
示例查询:
db.orders.aggregate([
{
$unwind: "$specs"
},
{
$lookup:
{
from: "inventory",
localField: "specs",
foreignField: "size",
as: "inventory_docs"
}
},
{
$match: { "inventory_docs": { $ne: [] } }
}
])
Run Code Online (Sandbox Code Playgroud) 我正在访问MongoDB,并希望在Java中重用典型的命令行查询.我知道可以使用BasicDBObject,但我想使用这样的命令行查询:
db.MyCollection.find()
Run Code Online (Sandbox Code Playgroud)
我现在尝试使用数据库的command()方法:
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("MyDatabase");
CommandResult result= db.command("db.MyCollection.find()");
JSONObject resultJson = new JSONObject(result.toString());
System.out.println(resultJson.toString(4));
Run Code Online (Sandbox Code Playgroud)
但这会给我带来以下结果.
"ok": 0,
"code": 59,
"errmsg": "no such cmd: db.MyCollection.find()",
"bad cmd": {"db.MyCollection.find()": true},
"serverUsed": "localhost:27017"
Run Code Online (Sandbox Code Playgroud)
如何在Java中运行命令行查询?
我不想使用DBCollection类 - 因为它不再可能为不同的集合运行查询.
DBCollection collection = db.getCollection("MyCollection");
collection.find(); //NOT THIS
Run Code Online (Sandbox Code Playgroud)