0

私はMongoDBを初めて使用するので、無知を許してください。

このようなドキュメントの束を含むmongoDBがあります

["field": "blah", "version":"1" ...]
["field": "blah", "version":"2" ...]
["field": "blah", "version":"1"....]
["field": "blah1", "version":"10"...]
["field": "blah2", "version":"100"...]
["field": "blah3", "version":"1"....]
["field": "blah3", "version":"2"....]
["field": "blah2", "version":"1"....

クエリのリストを送信し、すべてのレコードをバッチとして取得しようとしています。そうすることは可能ですか?

List<Docs> fetchDocs(Map<String, String> queries)
{
     CriteriaContainer cc=null;
     Query<Docs> query = this.mongoDao.createQuery(MyClass.class);
     for (Map.Entry<String,String >entry : queries.entrySet())
     {
          if(cc ==null)
          {
            cc= query.criteria("Field").equal(entry.getKey()).and(query.criteria("version").equal(entry.getValue()));
          }
          else
          {
            cc.or(query.criteria("Field").equal(entry.getKey()).and(query.criteria("version").equal(entry.getValue()));)
          }

    }
    query.and(cc);
    List<Docs> doc = query.asList();

    return doc;
}

正しいリストが返されません。このクエリを正しく記述したかどうかはわかりません。

基本的に、このような結果またはクエリを取得したい

[{"Field":"blah,"version":1 } $or {"Field":"blah1", "version":10} ]

を含むリストが返されるはずです

["field": "blah", "version":"1" ....]

["field": "blah1", "version":"10"....]
4

2 に答える 2