如何从mongodb中的条件中获取集合中的不同值?

时间:2013-04-25 14:53:55

标签: java mongodb morphia

如何从具有条件的集合中获取不同的值?

例如,我有Worker类,其中包含status和workerId以及其他字段, 在这里,我想要检索具有status =“ACTIVE”;

的不同workerId

我已经做了足够的谷歌搜索但找不到任何解决方案

任何帮助将不胜感激

提前致谢!

修改

对不起家伙我没有正确地提出我的问题。 我希望使用morphia而不是使用mongodb本机查询来完成此操作。

可以使用MapReduce完成吗? 请帮帮我!

2 个答案:

答案 0 :(得分:14)

对于发布延迟感到抱歉,

BasicDBObject dbObject=new BasicDBObject();
dbObject.append("status","ACTIVE");

dbObject将充当where条件,

DBCollection dBCollection = datastore.getCollection(MyEntity.class);
List id=dBCollection.distinct("id",dbObject);

此ID列表将包含status="ACTIVE"

的所有不同ID

答案 1 :(得分:0)

支持

distinct作为命令而不是查询(不确定原因)。试试下面的

db.runCommand ( 
    { 
        distinct: 'name-of-collection',
        key: 'worker-id',
        query: { 'status': 'ACTIVE' }
    } 
)