在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在一个查询中获取多个文档?
答案 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
代替ObjectId
,Oid.withOid
方法会转换您的String
{1}} ObjectId
。
但是,最后,这个便捷方法输入被转换为常规的字符串化查询。因此,如果方便不符合您的需要,请尝试查询。