Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Jongo中,如何通过ID列表从Mongodb中查找多个文档_Mongodb_Jongo - Fatal编程技术网

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

在Jongo中,如何通过ID列表从Mongodb中查找多个文档,mongodb,jongo,Mongodb,Jongo,在mongodb中,我可以通过以下查询来实现这一点: 查找( {u id:{$in:[ObjectId('5275c6721a88939923c3ea54')、ObjectId('5275c6721a88939923c3ea55')、ObjectId('5275c6721a88939923c3ea56')、ObjectId('5275c6721a88939923c3ea57')、ObjectId('5275c6721a88939923c3ea58')} ) 但是我们如何使用Jongo代码实现同

在mongodb中,我可以通过以下查询来实现这一点:

查找(
{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
,但在许多情况下可以避免这种情况。