1

假设我只想查询所有文档的某个属性,例如在 SQL 中:

SELECT FIRSTNAME
FROM TABLE1

如何使用 Mongo 和它的 Java API 来做到这一点?

4

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 回答