6

次の情報を取得したいと思います。

select names from database where names like 'Jon';

ただし、JavaのMongoDBの場合。基本的に、Jonathan、Jongなど、Jonという単語を含むすべての名前を返す必要があります$in。MongoDBに演算子があることは知っていますが、Javaドライバーを使用してJavaで同じことを行うにはどうすればよいですか?私はどこでもそれを探しようとしてきましたが、何も得られていません。私が試した:query = new BasicDBObject("names", new BasicDBObject("$in", "Jon"));、、query = new BasicDBObject("names", new BasicDBObject("$in", Jon));

しかし、どちらも機能しませんでした:(助けてください!

4

3 に答える 3

10

そのSELECTステートメントに相当するMongoDBJavaドライバーは次のようになります。

BasicDBObject fields = new BasicDBObject().append("name", 1); // SELECT name
BasicDBObject query = new BasicDBObject().append("name", "Jon"); // WHERE name = "Jon"
DBCursor results = yourCollection.find(query, fields); // FROM yourCollection

$regex文字列の一部を検索する場合は、次の演算子を使用できます。

query = new BasicDBObject("name", new BasicDBObject("$regex", "Jon"));

これにより、名前が正規表現 と一致するすべてのオブジェクトが取得されますJon。これは、任意の場所に文字列「Jon」を含むすべてのものです。

于 2012-12-04T21:49:06.730 に答える
1

Mongo-Java公式サイトに加えて、mongoオブジェクトをマッピングするための優れたライブラリを確認してください

于 2012-12-04T21:38:43.923 に答える
0

$inMongoDBの演算子は、SQLの演算子に似ていますIN。たとえば、SQLのようなクエリを実行するために使用できます。

SELECT * FROM table WHERE id IN {1, 4, 6, 7, 9}

これがあなたにとってうまくいかない理由です。他の人がすでに示唆しているように、正規表現を使用します。

于 2014-05-06T13:50:26.433 に答える