在Jongo中,如何通过ID列表从Mongodb中查找多个文档
在mongodb中,我可以通过以下查询来实现这一点:在Jongo中,如何通过ID列表从Mongodb中查找多个文档,mongodb,jongo,Mongodb,Jongo,在mongodb中,我可以通过以下查询来实现这一点: 查找( {u id:{$in:[ObjectId('5275c6721a88939923c3ea54')、ObjectId('5275c6721a88939923c3ea55')、ObjectId('5275c6721a88939923c3ea56')、ObjectId('5275c6721a88939923c3ea57')、ObjectId('5275c6721a88939923c3ea58')} ) 但是我们如何使用Jongo代码实现同
查找(
{u id:{$in:[ObjectId('5275c6721a88939923c3ea54')、ObjectId('5275c6721a88939923c3ea55')、ObjectId('5275c6721a88939923c3ea56')、ObjectId('5275c6721a88939923c3ea57')、ObjectId('5275c6721a88939923c3ea58')}
)
但是我们如何使用Jongo代码实现同样的功能呢
我知道我们可以通过以下途径找到一份文件:
db.getCollection(“mongoEg”).findOne(Oid.withOid(“5194D46DDA2DE09C656B64B”)).as(MongoTest.class);
但是,如何通过Jongo在一次查询中获取多个文档?我看到两种方法可以实现对多个ID的查找:
//1。使用ID数组查找
ObjectId[]id={id,id,id};
find({u id:{$in:}),ids.as(Friend.class);
//2.查找ID列表
collection.find({u id:{$in:[#,#,#]}),id,id,id.as(Friend.class);
findOne
为ObjectId
提供了一种方便的方法,如果您使用带注释的字符串而不是ObjectId
,则Oid.withOid
方法将字符串
转换为ObjectId
但是,最终,这种方便的方法输入被转换为一个常规的字符串化查询。因此,如果方便性不符合您的需要,请尝试查询。谢谢您的回答,但我仍然对ObjectId类感到困惑。是org.jongo.marshall.jackson.oid.ObjectId还是org.bson.types.ObjectId?如何将字符串(mongodb _id)如“5275c6721a88939923c3ea5c”转换为和ObjectId实例?ObjectId
是mongodb驱动程序用来操作Mongo\u id
的类型。Jongo引入了一个注释,@ObjectId
,将Mongo\u id
作为字符串进行操作。看看这本书,你会对此有一个很好的了解。您可以使用newobjectid(String)
从String
创建ObjectId
,但在许多情况下可以避免这种情况。