5

JavaとMongoDBを使用してパラメーター化されたクエリを実行できますか?JDBCを使用したプリペアドステートメントのようなものですか?

私がやりたいのはこんな感じです。日付範囲を取得するクエリを設定し、それを別の範囲で呼び出します。DBCursor.find(...)私はそれがこのように機能しないことを理解しています-これは私が探しているものを説明するための一種の擬似コードです。

DBCollection dbc = ...
DBObject pQuery = (DBObject) JSON.parse("{'date' : {'$gte' : ?}, 'date' : {'$lte' : ?}}");
DBCursor aprilResults = dbc.find(pQuery, "2012-04-01", "2012-04-30");
DBCursor mayResults = dbc.find(pQuery, "2012-05-01", "2012-05-31");
...
4

2 に答える 2

4

MongoDB 自体はこのようなものをサポートしていませんが、とにかく毎回サーバーにクエリを送信する必要があるため、あまり意味がありません。アプリケーションでオブジェクトを自分で構築し、正しい配列要素を更新して特定の部分を変更するだけです。

于 2012-05-18T09:53:14.640 に答える
3

mongo-java-driver の API であるJongoを使用する必要があります。

パラメータ化されたクエリの例を次に示します。

    collection.insert("{'date' : #}", new Date(999));               
    Date before = new Date(0);
    Date after = new Date(1000);

    Iterable<Report> results = collection.find("{'date' : {$gte : #}, 'date' : {$lte : #}}", before, after).as(Report.class);
于 2012-05-25T13:40:20.840 に答える