1

我正在尝试使用 Java 从数据库中获取 mongo“_ids”列表。我不需要数据库中对象的任何其他部分,只需要“_id”。

这就是我现在正在做的事情:

// Another method queries for all objects of a certain type within the database.
Collection<MyObject> thingies = this.getMyObjects();

Collection<String> ids = new LinkedList<String>();
for (MyObject thingy : thingies) {
  ids.add(thingy.getGuid());
}

不过,这似乎非常低效......有没有办法只在 mongo 中查询某种类型的对象并只返回它们的“_ids”,而不必重新组装整个对象并提取它?

谢谢!

4

1 回答 1

1

find()方法有一个重载,您可以在其中传递要从查询中检索回来的键或不想要的键。

所以你可以试试这个:

BasicDBObject qyery = new BasicDBObject("someKey","someValue");
BasicDBObject keys = new BasicDBObject("_id", 1);
DBCursor cursor = collection.find(query, keys);
于 2013-06-19T20:56:47.130 回答