Ошибка слишком большого количества параметров в следующем $ в запросе
Я использую 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();