在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在一个查询中获取多个文档?
我看到两个选项来实现多个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
而不是a ObjectId
,那么这个Oid.withOid
方法会将你String
变成一个ObjectId
.
但是,最后,这种便捷方法输入被转换为常规的字符串化查询.因此,如果方便不符合您的需要,请尝试查询.