如何从具有条件的集合中获取不同的值?
例如,我有Worker类,其中包含status和workerId以及其他字段, 在这里,我想要检索具有status =“ACTIVE”;
的不同workerId我已经做了足够的谷歌搜索但找不到任何解决方案
任何帮助将不胜感激
提前致谢!
修改
对不起家伙我没有正确地提出我的问题。 我希望使用morphia而不是使用mongodb本机查询来完成此操作。
可以使用MapReduce完成吗? 请帮帮我!
答案 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"
答案 1 :(得分:0)
distinct作为命令而不是查询(不确定原因)。试试下面的
db.runCommand (
{
distinct: 'name-of-collection',
key: 'worker-id',
query: { 'status': 'ACTIVE' }
}
)