4

mongodb では、次のクエリでこれを行うことができます。

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

しかし、Jongo コードを使用して同じことを行うにはどうすればよいでしょうか?

次の方法で 1 つのドキュメントを見つけることができます。

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

しかし、Jongo を介して 1 回のクエリで複数のドキュメントを取得するにはどうすればよいでしょうか?

4

1 に答える 1

6

複数の ID を検索するには、次の 2 つのオプションがあります。

// 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は and を使用した便利なメソッドを提供します。 の代わりにObjectId注釈付きの を使用すると、メソッドは yourを に変換します。StringObjectIdOid.withOidStringObjectId

しかし、最終的に、この便利なメソッドの入力は通常の文字列化されたクエリに変換されます。したがって、利便性がニーズに合わない場合は、代わりにクエリを試してください。

于 2013-12-01T10:10:08.520 に答える