List of usage examples for com.mongodb DBCursor hasNext
@Override public boolean hasNext()
From source file:com.andreig.jetty.QueryServlet.java
License:GNU General Public License
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doGet()"); if (!can_read(req)) { res.sendError(SC_UNAUTHORIZED);// w ww. j av a 2 s . c o m return; } String db_name = req.getParameter("dbname"); String col_name = req.getParameter("colname"); if (db_name == null || col_name == null) { String names[] = req2mongonames(req); if (names != null) { db_name = names[0]; col_name = names[1]; } if (db_name == null || col_name == null) { error(res, SC_BAD_REQUEST, Status.get("param name missing")); return; } } String skip = req.getParameter("skip"); String limit = req.getParameter("limit"); DB db = mongo.getDB(db_name); // mongo auth String user = req.getParameter("user"); String passwd = req.getParameter("passwd"); if (user != null && passwd != null && (!db.isAuthenticated())) { boolean auth = db.authenticate(user, passwd.toCharArray()); if (!auth) { res.sendError(SC_UNAUTHORIZED); return; } } DBCollection col = db.getCollection(col_name); DBCursor c = col.find(); if (c == null || c.count() == 0) { error(res, SC_NOT_FOUND, Status.get("no documents found")); return; } res.setIntHeader("X-Documents-Count", c.count()); if (limit != null) { try { c.limit(Math.min(Integer.parseInt(limit), MAX_FIELDS_TO_RETURN)); } catch (NumberFormatException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse limit")); c.close(); return; } } else c.limit(MAX_FIELDS_TO_RETURN); if (skip != null) { try { c.skip(Integer.parseInt(skip)); } catch (NumberFormatException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse skip")); c.close(); return; } } StringBuilder buf = tl.get(); buf.setLength(0); int no = 0; buf.append("["); while (c.hasNext()) { DBObject o = c.next(); if (rm_id) o.removeField("_id"); JSON.serialize(o, buf); buf.append(","); no++; } c.close(); if (no > 0) buf.setCharAt(buf.length() - 1, ']'); else buf.append(']'); res.setIntHeader("X-Documents-Returned", no); out_str(req, buf.toString(), "application/json"); }
From source file:com.andreig.jetty.SearchServlet.java
License:GNU General Public License
private String search2mongo(Document hits[], DBCollection col) { List<ObjectId> values = new ArrayList<ObjectId>(); for (Document hit : hits) { String _id = hit.get("_id"); ObjectId oid = ObjectId.massageToObjectId(_id); values.add(oid);/*from w w w. ja v a 2 s .c o m*/ } BasicDBObject q = new BasicDBObject(); q.put("_id", new BasicDBObject("$in", values)); DBCursor c = col.find(q); if (c == null || c.count() == 0) { return null; } StringBuilder buf = tl.get(); // reset buf buf.setLength(0); int no = 0; buf.append("["); while (c.hasNext()) { DBObject o = c.next(); if (rm_id) o.removeField("_id"); JSON.serialize(o, buf); buf.append(","); no++; } c.close(); if (no > 0) buf.setCharAt(buf.length() - 1, ']'); else buf.append(']'); return buf.toString(); }
From source file:com.andreig.jetty.WriteServlet.java
License:GNU General Public License
@Override protected void doDelete(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doDelete()"); if (!can_write(req)) { res.sendError(SC_UNAUTHORIZED);//from w w w . j a v a2 s . c o m return; } InputStream is = req.getInputStream(); String db_name = req.getParameter("dbname"); String col_name = req.getParameter("colname"); if (db_name == null || col_name == null) { String names[] = req2mongonames(req); if (names != null) { db_name = names[0]; col_name = names[1]; } if (db_name == null || col_name == null) { error(res, SC_BAD_REQUEST, Status.get("param name missing")); return; } } DB db = mongo.getDB(db_name); // mongo auth String user = req.getParameter("user"); String passwd = req.getParameter("passwd"); if (user != null && passwd != null && (!db.isAuthenticated())) { boolean auth = db.authenticate(user, passwd.toCharArray()); if (!auth) { res.sendError(SC_UNAUTHORIZED); return; } } DBCollection col = db.getCollection(col_name); BufferedReader r = null; DBObject q = null; try { r = new BufferedReader(new InputStreamReader(is)); String data = r.readLine(); if (data == null) { error(res, SC_BAD_REQUEST, Status.get("no data")); return; } try { q = (DBObject) JSON.parse(data); } catch (JSONParseException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse data")); return; } } finally { if (r != null) r.close(); } // search if (do_search) { DBCursor c = col.find(q); long l = c.count(); String todelete[] = new String[(int) l]; int n = 0; while (c.hasNext()) { DBObject o = c.next(); ObjectId oid = (ObjectId) o.get("_id"); String id = oid.toStringMongod(); todelete[n++] = id; } c.close(); search.get_writer().delete(todelete); } WriteResult wr = col.remove(q, write_concern); // return operation status if (do_return) { out_str(req, wr.toString()); if (wr.getError() == null) { res.setStatus(SC_BAD_REQUEST); return; } } res.setStatus(SC_OK); }
From source file:com.andreig.jetty.WriteServlet.java
License:GNU General Public License
@Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doPost()"); if (!can_write(req)) { res.sendError(SC_UNAUTHORIZED);/*from w w w.j av a 2s .c o m*/ return; } InputStream is = req.getInputStream(); String db_name = req.getParameter("dbname"); String col_name = req.getParameter("colname"); if (db_name == null || col_name == null) { String names[] = req2mongonames(req); if (names != null) { db_name = names[0]; col_name = names[1]; } if (db_name == null || col_name == null) { error(res, SC_BAD_REQUEST, Status.get("param name missing")); return; } } boolean upsert = Boolean.parseBoolean(req.getParameter("upsert")); boolean multi = Boolean.parseBoolean(req.getParameter("multi")); DB db = mongo.getDB(db_name); // mongo auth String user = req.getParameter("user"); String passwd = req.getParameter("passwd"); if (user != null && passwd != null && (!db.isAuthenticated())) { boolean auth = db.authenticate(user, passwd.toCharArray()); if (!auth) { res.sendError(SC_UNAUTHORIZED); return; } } DBCollection col = db.getCollection(col_name); BufferedReader r = null; DBObject q = null, o = null; try { r = new BufferedReader(new InputStreamReader(is)); String q_s = r.readLine(); if (q_s == null) { error(res, SC_BAD_REQUEST, Status.get("no data")); return; } String o_s = r.readLine(); if (o_s == null) { error(res, SC_BAD_REQUEST, Status.get("obj to update missing")); return; } try { q = (DBObject) JSON.parse(q_s); o = (DBObject) JSON.parse(o_s); } catch (JSONParseException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse data")); return; } } finally { if (r != null) r.close(); } // // search if (do_search) { String fn = col.getFullName(); DBCursor c = col.find(q); int cnt = c.count(); if (!multi) c.limit(1); long l = multi ? cnt : 1; String toupdate[] = new String[(int) l]; int n = 0; boolean insert = false; if (upsert && !multi && cnt == 0) insert = true; while (c.hasNext()) { DBObject _o = c.next(); ObjectId oid = (ObjectId) _o.get("_id"); String id = oid.toStringMongod(); toupdate[n++] = id; } c.close(); List<String> flds = Config.search_index_fields.get(fn); boolean commit = false; Document doc = null; Search _writer = search.get_writer(); if (flds != null && flds.size() > 0) { doc = new Document(); try { for (String fld : flds) { String val = (String) o.get(fld); if (val == null) continue; Search.add_searchable_s(doc, fld, val); commit = true; } if (commit) _writer.commit(doc); } catch (ClassCastException e) { error(res, SC_BAD_REQUEST, Status.get("searchable fields must be type String")); return; } catch (CorruptIndexException e) { error(res, SC_BAD_REQUEST, Status.get("Search corrupt index" + e)); return; } } if (commit && insert) log.warning("upsert with search not implemented yet"); else _writer.update(toupdate, doc); } WriteResult wr = col.update(q, o, upsert, multi, write_concern); // return operation status if (do_return) { out_str(req, wr.toString()); if (wr.getError() == null) { res.setStatus(SC_BAD_REQUEST); return; } } res.setStatus(SC_CREATED); }
From source file:com.aperigeek.dropvault.web.dao.MongoFileService.java
License:Open Source License
public List<Resource> getChildren(Resource resource) { DBCollection col = mongo.getDataBase().getCollection("files"); DBObject filter = new BasicDBObject(); filter.put("parent", resource.getId()); List<Resource> children = new ArrayList<Resource>(); DBCursor cursor = col.find(filter); while (cursor.hasNext()) { children.add(buildResource(cursor.next())); }/*from w w w.ja v a 2s.c o m*/ return children; }
From source file:com.apifest.oauth20.MongoDBManager.java
License:Apache License
@SuppressWarnings("unchecked") @Override/*from w w w .j av a2 s.com*/ public AuthCode findAuthCode(String authCode, String redirectUri) { BasicDBObject keys = new BasicDBObject(); keys.put(AUTH_CODE_ID_NAME, authCode); keys.put(REDIRECT_URI_NAME, redirectUri); keys.put(VALID_NAME, true); DBCursor list = db.getCollection(AUTH_CODE_COLLECTION_NAME).find(new BasicDBObject(keys)); while (list.hasNext()) { DBObject result = list.next(); Map<String, Object> mapLoaded = result.toMap(); AuthCode loadedAuthCode = AuthCode.loadFromMap(mapLoaded); log.debug(loadedAuthCode.getClientId()); list.close(); return loadedAuthCode; } list.close(); return null; }
From source file:com.apifest.oauth20.MongoDBManager.java
License:Apache License
protected Object getObject(DBCollection coll, BasicDBObject query) { DBCursor cursor = coll.find(query); Object result = null;/*from w w w . ja v a 2 s . c o m*/ try { // TODO: if more than once throw exception while (cursor.hasNext()) { result = cursor.next(); log.debug("found: " + result); } } finally { if (cursor != null) { cursor.close(); } } return result; }
From source file:com.apifest.oauth20.persistence.mongodb.MongoDBManager.java
License:Apache License
@SuppressWarnings("unchecked") @Override// w w w . j a va 2s . co m public AuthCode findAuthCode(String authCode, String redirectUri) { BasicDBObject keys = new BasicDBObject(); keys.put(AUTH_CODE, authCode); keys.put(ACCESS_TOKEN_REDIRECT_URI, redirectUri); keys.put(ACCESS_TOKEN_VALID, true); DBCursor list = db.getCollection(AUTH_CODE_COLLECTION_NAME).find(new BasicDBObject(keys)); if (list.hasNext()) { DBObject result = list.next(); Map<String, Object> mapLoaded = result.toMap(); AuthCode loadedAuthCode = AuthCode.loadFromMap(mapLoaded); log.debug(loadedAuthCode.getClientId()); list.close(); return loadedAuthCode; } list.close(); return null; }
From source file:com.app.mongoDao.MongoBookDao.java
@Override public List<Book> listBook() { ArrayList<Book> booklist = new ArrayList<>(); try {// w w w .ja va 2 s. c om DBCollection data = DatabaseConfig.configure(); BasicDBObject orderBy = new BasicDBObject("id", 1); DBCursor docs = data.find().sort(orderBy); while (docs.hasNext()) { DBObject doc = docs.next(); Book librarybook = new Book(doc.get("bookname").toString(), doc.get("author").toString()); booklist.add(librarybook); } } catch (Exception e) { e.printStackTrace(); } return booklist; }
From source file:com.appleframework.monitor.action.LogsAction.java
License:Open Source License
@RequestMapping(value = "/projects/{projectName}/logs/download", method = RequestMethod.GET) public void download(final HttpServletResponse response, ModelMap map, @PathVariable String projectName, LogQuery logQuery) throws IOException, ParseException { Project project = projectService.findProject(projectName); final MongoConverter converter = project.fetchMongoTemplate().getConverter(); final DBCursor cursor = logsService.findLogs(projectName, logQuery, 100000); response.setContentType("file/txt;charset=utf-8"); response.addHeader("content-disposition", String.format("attachment; filename=%s.txt", java.net.URLEncoder.encode("logs", "UTF-8"))); response.setStatus(HttpServletResponse.SC_OK); while (cursor.hasNext()) { Log log = converter.read(Log.class, cursor.next()); response.getWriter().println(log.toString()); }/* www. j a v a2s.c o m*/ }