3 回答

TA貢獻1878條經驗 獲得超4個贊
尋找:
db.runCommand({
find: "mycol",
filter: { by: "tutorials point"}
})
插入:
db.runCommand({
insert: "mycol",
documents: [ { _id: 1, foo: "bar"} ]
})
我認為在 java 中這樣做最簡單的原因是使用 Jongo ( http://jongo.org/ )。語法與 mongo shell 非常相似。
jongo.runCommand("{find: 'mycol', filter: { by: 'tutorials point'}}")

TA貢獻1818條經驗 獲得超11個贊
舉例說明它是如何工作的這是我的查詢
db.getCollection('Collection').aggregate([{
$unwind: '$somearray'
}, {
$match: {
_id: ObjectId("123456"),
'somearray.type': "blabla"
}
}, {
$project: {
'_id':0,
'name': '$somearray.name',
'phone': '$phone'
}
}])
這是我的 Java 程序,它和查詢一樣
public MongoIterable < Document > GetList(String collectionName, String id) {
MongoClient mongoClient = new MongoClient();
MongoDatabase database = mongoClient.getDatabase("MyDB");
MongoCollection < Document > collection = database.getCollection("collectionName");
Document match = Document.parse("{_id: ObjectId('" + id + "'),'somearray.type': 'blabla'}");
Document project = Document.parse("{ $project: { _id: 0,'name': '$somearray.name'}, 'phone': '$phone'}");
MongoIterable < Document > output = collection.aggregate(Arrays.asList(Aggregates.unwind("$somearray"), Aggregates.match(match), project));
return output;
}

TA貢獻1784條經驗 獲得超7個贊
你不能這樣做。首先你需要得到你的collection
喜歡 :MongoCollection<Document> collection = database.getCollection("test");
擁有后,collection您可以使用 util 運行原始查詢import com.mongodb.util.JSON;
這將是您想要做的一個例子:
MongoClient mongoClient = new MongoClient();
MongoDatabase database = mongoClient.getDatabase("MyDB");
MongoCollection<Document> collection = database.getCollection("mycol");
String rawQuery = "{\"by\": \"tutorials point\"}";
DBObject query = (DBObject) JSON.parse(rawQuery);
collection.find(query);
添加回答
舉報