4

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

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

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

任何帮助,将不胜感激

提前致谢!

编辑

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

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

4

2 回答 2

14

很抱歉延迟发布,

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

dbObject将作为 where 条件,

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

此 ID 列表将包含所有不同的 ID,其status="ACTIVE"

于 2013-05-10T06:56:49.203 回答
0

distinct作为命令而不是查询被支持(不知道为什么)。试试下面

db.runCommand ( 
    { 
        distinct: 'name-of-collection',
        key: 'worker-id',
        query: { 'status': 'ACTIVE' }
    } 
)
于 2013-04-25T16:27:27.240 回答