私は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"....]