1

次のようなmongoコレクションがあるとしましょう:

/* 0 */
{
    "_id" : {
        "index" : "index1",
        "version" : 1
        }
}

/* 1 */
{
    "_id" : {
        "index" : "index2",
        "version" : 2
    }
}

/* 2 */
{
    "_id" : {
        "index" : "index1",
        "version" : 3
    }
}

Spring の mongoTemplate を使用してクエリを作成し、_id.index = index1 のドキュメントのみを取得したいと考えています。

mongo シェルを使用すると、このクエリを次のように記述できます。

db.collectionName.find({"_id.index" : "index1"})

ただし、mongoTemplate を使用して機能すると想定していたものは機能しません。私が試してみました:

Query query = new Query();
query.addCriteria(Criteria.where("_id.index").is("index1"));
mongoTemplate.find(query, SomeJavaObject.class, COLLECTION_NAME);

mongoTemplate を使用して、このクエリの正しい構文を教えてください。

4

1 に答える 1

1

申し訳ありませんが、これは実際には有効な質問ではありません。質問で引用した mongoTemplate クエリは機能します。私は間違った_id.indexでそれを呼んでいました、おっと:)

質問を削除できないようですが、複合キークエリを実行する人に役立つかもしれません...

于 2015-01-29T10:47:18.457 に答える