Project

General

Profile

« Previous | Next » 

Revision 32912

added more search methods

View differences:

DnetLoggerMongoDao.java
15 15
import com.mongodb.DBCollection;
16 16
import com.mongodb.DBCursor;
17 17
import com.mongodb.DBObject;
18
import com.mongodb.QueryBuilder;
18 19

  
19 20
import eu.dnetlib.common.logging.LogMessage;
20 21

  
......
79 80
	}
80 81

  
81 82
	@Override
83
	public Iterator<Map<String, String>> find(final String collection, final Map<String, String> criteria) {
84
		final DBCollection coll = db.getCollection(collection);
85
		return iter(collection, coll.find(new BasicDBObject(criteria)));
86
	}
87

  
88
	@Override
82 89
	public Iterator<Map<String, String>> findByDateRange(final String collection, final Date startDate, final Date endDate) {
83 90
		final DBCollection coll = db.getCollection(collection);
84
		DBObject mongoQueryObject =
85
				new BasicDBObject(LogMessage.LOG_DATE_FIELD, BasicDBObjectBuilder.start("$gte", startDate.getTime()).append("$lt", endDate.getTime()).get());
91
		DBObject mongoQueryObject = dateRangeQuery(startDate, endDate);
86 92
		// System.out.println(mongoQueryObject);
87 93
		return iter(collection, coll.find(mongoQueryObject));
88 94
	}
89 95

  
96
	@Override
97
	public Iterator<Map<String, String>> findByDateRange(final String collection, final Date startDate, final Date endDate, final String key, final String value) {
98
		final DBCollection coll = db.getCollection(collection);
99
		final DBObject dateQuery = dateRangeQuery(startDate, endDate);
100
		final BasicDBObject customQuery = new BasicDBObject(key, value);
101

  
102
		return iter(collection, coll.find(QueryBuilder.start().and(dateQuery, customQuery).get()));
103
	}
104

  
105
	@Override
106
	public Iterator<Map<String, String>> findByDateRange(final String collection, final Date startDate, final Date endDate, final Map<String, String> criteria) {
107
		final DBCollection coll = db.getCollection(collection);
108
		final DBObject dateQuery = dateRangeQuery(startDate, endDate);
109
		final BasicDBObject customQuery = new BasicDBObject(criteria);
110

  
111
		return iter(collection, coll.find(QueryBuilder.start().and(dateQuery, customQuery).get()));
112
	}
113

  
114
	private BasicDBObject dateRangeQuery(final Date startDate, final Date endDate) {
115
		return new BasicDBObject(LogMessage.LOG_DATE_FIELD, BasicDBObjectBuilder.start("$gte", startDate.getTime()).append("$lt", endDate.getTime()).get());
116
	}
117

  
90 118
	private Iterator<Map<String, String>> iter(final String collection, final DBCursor cursor) {
91 119
		return new Iterator<Map<String, String>>() {
92 120

  
......
125 153
		}
126 154
		return res;
127 155
	}
156

  
128 157
}

Also available in: Unified diff