Ошибка слишком большого количества параметров в следующем $ в запросе

Я использую 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 В Jongo, как найти несколько документов из Mongodb по списку идентификаторов

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

Благодарю.

1 ответ

Решение

Попробуйте это с List как показано на документах:

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

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

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();
Другие вопросы по тегам