1

SQL のように、すべてのドキュメントの特定の属性のみをクエリしたいとします。

SELECT FIRSTNAME
FROM TABLE1

どうすればMongoとJava APIでそれを行うことができますか?

4

2 に答える 2

2

すべてのドキュメントを取得する場合は、最初の引数として空のオブジェクトを使用します。2つ目では、フィールドのみを取得しますFIRSTNAME

db.table1.find({}, {'FIRSTNAME': 1});

詳細については、クエリに関するドキュメントを参照してください。

于 2012-04-04T08:04:31.080 に答える
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"}
于 2012-04-04T08:32:26.760 に答える