2016-08-23 8 views
2

Я использую jongo API - org.jongo.MongoCollection - это класс.

У меня есть список объектов идентификаторами и преобразуются так же, как ObjectId[] и пытается запросить следующим

collection.find("{_id:{$in:#}}", ids).as(Employee.class); 

The query throws the exception - "java.lang.IllegalArgumentException: Too  
many parameters passed to query: {"_id":{"$in":#}}" 

Запрос не работает, как указано в URL In Jongo, how to find multiple documents from Mongodb by a list of IDs

Любое предложение о том, как разрешить?

Спасибо.

ответ

3

Попробуйте его с List, как показано на docs:

List<String> ages = Lists.newArrayList(22, 63); 
friends.find("{age: {$in:#}}", ages); //→ will produce {age: {$in:[22,63]}} 

Например, следующий фрагмент кода я созданный быстро & грязный прямо сейчас работал для меня (я использую старую многословный синтаксис, как я в настоящее время на такой system ...)

List<ObjectId> ids = new ArrayList<ObjectId>(); 
ids.add(new ObjectId("57bc7ec7b8283b457ae4ef01")); 
ids.add(new ObjectId("57bc7ec7b8283b457ae4ef02")); 
ids.add(new ObjectId("57bc7ec7b8283b457ae4ef03")); 
int count = friends.find("{ _id: { $in: # } }", ids).as(Friend.class).count(); 
+0

Это не работает как collection.find возвращает MongoCursor и бросает исключение cast. однако следующее работает отлично. Как скрывать MongoCursor к определенному пользователем списку. Я использую следующий список collectionsAsList = new ArrayList (); MongoCursor cursorCollection = collection.find ("{_id: {$ in: #}}", ids) .as (Friends.class); while (cursorCollection.hasNext()) { collectionsAsList.add (cursorCollection.next()); } – Kathiresa

+0

Это действительно работает, но вы должны иметь подходящий класс «Друг», но это тоже не тема вашего вопроса, но это был способ передачи списка идентификаторов, и это вопрос, если это работает вы или нет – DAXaholic

+0

Это хорошо работает и благодарит. У меня был подходящий класс, но он корректно набирал тип, так как в данный момент он генерирует ошибку компиляции. можно ли здесь поместить фрагмент кода? – Kathiresa

Смежные вопросы