在Jongo中,如何通过ID列表从Mongodb中查找多个文档

时间:2013-11-30 12:13:11

标签: mongodb jongo

在mongodb中,我可以通过以下查询来执行此操作:

find(
    { _id : { $in : [ ObjectId('5275c6721a88939923c3ea54'), ObjectId('5275c6721a88939923c3ea55'), ObjectId('5275c6721a88939923c3ea56'), ObjectId('5275c6721a88939923c3ea57'), ObjectId('5275c6721a88939923c3ea58') ] } }
)

但是我们怎样才能使用Jongo代码呢?

我知道我们可以通过以下方式找到一份文件:

db.getCollection("mongoEg").findOne(Oid.withOid("5194d46bdda2de09c656b64b")).as(MongoTest.class);

但如何通过Jongo在一个查询中获取多个文档?

1 个答案:

答案 0 :(得分:5)

我看到两个选项可以实现多个ID的查找:

// 1. find with an array of ids
ObjectId[] ids = {id, id, id};
collection.find("{_id:{$in:#}}", ids).as(Friend.class);

// 2.find a list of ids
collection.find("{_id:{$in:[#, #, #]}}", id, id, id).as(Friend.class);

findOne提供了ObjectId的便捷方法,如果您使用带注释的String代替ObjectIdOid.withOid方法会转换您的String {1}} ObjectId

但是,最后,这个便捷方法输入被转换为常规的字符串化查询。因此,如果方便不符合您的需要,请尝试查询。