以下$ in查询

时间:2016-08-23 15:38:39

标签: java mongodb mongodb-query jongo

我正在使用jongo API - org.jongo.MongoCollection就是这个类。

我有对象ID列表并转换为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":#}}"

查询无法按照网址In Jongo, how to find multiple documents from Mongodb by a list of IDs

中的说明运行

有关如何解决的任何建议吗?

感谢。

1 个答案:

答案 0 :(得分:3)

使用docs

上显示的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();

例如我快速制作的以下片段&amp;脏了现在为我工作(我使用较旧的详细语法,因为我目前在这样一个系统...)

{{1}}