2013-04-25 2 views
4

Как получить отличные значения из коллекции с условием?Как получить отличные значения из коллекции с условием в mongodb?

Например, у меня есть класс Worker, который содержит статус и workId вместе с другими полями, Здесь я хочу получить отчетливый employeeId, который имеет статус = «ACTIVE»;

Я сделал достаточно погуглите, но не мог найти любое решение

Любая помощь будет оценена

Спасибо заранее!

Редактировать

К сожалению, ребята, я не ставил мой вопрос правильно. Я хочу, чтобы это было сделано с использованием morphia, не используя собственный запрос mongodb.

Можно ли это сделать с помощью MapReduce? Помогите мне, пожалуйста!

+0

Поиск Google для «mongodb and distinct»: http://docs.mongodb.org/manual/reference/command/distinct/Разве это не то, что вы хотите? – WiredPrairie

ответ

13

Извините за задержку в публикации,

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

это dbObject будет выступать в качестве где условия,

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

Этот список ID будет содержит все различны идентификаторы которых status="ACTIVE"

0

distinct поддерживается как команда вместо запроса (не знаете почему). Попробуйте ниже

db.runCommand ( 
    { 
     distinct: 'name-of-collection', 
     key: 'worker-id', 
     query: { 'status': 'ACTIVE' } 
    } 
) 
Смежные вопросы