SQL のように、すべてのドキュメントの特定の属性のみをクエリしたいとします。
SELECT FIRSTNAME
FROM TABLE1
どうすればMongoとJava APIでそれを行うことができますか?
すべてのドキュメントを取得する場合は、最初の引数として空のオブジェクトを使用します。2つ目では、フィールドのみを取得しますFIRSTNAME
。
db.table1.find({}, {'FIRSTNAME': 1});
詳細については、クエリに関するドキュメントを参照してください。
Java API では、このように実行できます。_id フィールドを除外するには、明示的にオフにする必要があります。
Mongo m = new Mongo();
DB db = m.getDB( "test" );
DBCollection coll = db.getCollection("test");
coll.insert(new BasicDBObject("Name","Wes").append("x", "to have a second field"));
BasicDBObject query = new BasicDBObject();
BasicDBObject fields = new BasicDBObject("Name",1).append("_id",false);
DBCursor curs = coll.find(query, fields);
while(curs.hasNext()) {
DBObject o = curs.next();
System.out.println(o.toString());
}
出力:
{ "Name" : "Wes"}
ソートの更新:
coll.insert(new BasicDBObject("Name","Wes").append("x", "to have a second field"));
coll.insert(new BasicDBObject("Name","Alex").append("x", "to have a second field"));
coll.insert(new BasicDBObject("Name","Zeus").append("x", "to have a second field"));
BasicDBObject query = new BasicDBObject();
BasicDBObject fields = new BasicDBObject("Name",1).append("_id",false);
BasicDBObject orderBy = new BasicDBObject("Name",1);
DBCursor curs = coll.find(query, fields).sort(orderBy);
while(curs.hasNext()) {
DBObject o = curs.next();
System.out.println(o.toString());
}
与えます:
{ "Name" : "Alex"}
{ "Name" : "Wes"}
{ "Name" : "Zeus"}