List of usage examples for com.mongodb DBCursor limit
public DBCursor limit(final int limit)
From source file:me.yyam.mongodbutils.MongoDbOperater.java
public List<Map> find(DBCollection coll, DBObject query, DBObject order, int start, int limit) { DBCursor cursor = null; if (query == null) { cursor = coll.find();/*from ww w . j a v a 2s . co m*/ } else { cursor = coll.find(query); } if (order != null) cursor = cursor.sort(order); if (start != 0 && limit != 0) { cursor.skip(start).limit(limit); } if (start == 0 && limit != 0) { cursor.limit(limit); } return cursor2list(cursor); }
From source file:mongodb.findPagging.java
public static void pageResults(DBCollection collection, Integer skip) { BasicDBObject query = new BasicDBObject("first", "w"); DBCursor cursor = collection.find(query); cursor.sort(new BasicDBObject("word", 1)); cursor.limit(10); cursor.skip(skip);/*w ww . ja v a 2 s . c om*/ System.out.println("Page " + new Integer(skip + 1).toString() + " to " + new Integer(skip + cursor.size()).toString() + ":"); findPagging.displayCursor(cursor); if (cursor.size() == 10) { findPagging.pageResults(collection, skip + 10); } }
From source file:mongodb.JavaFindFields.java
public static void includeFields(DBCollection collection, String[] fields) { BasicDBObject query = new BasicDBObject("first", "p"); BasicDBObject fieldDoc = new BasicDBObject(); for (final String field : fields) { fieldDoc.append(field, 1);/*from w w w . ja v a2 s .c o m*/ } DBCursor cursor = collection.find(query, fieldDoc); cursor.limit(1); System.out.println("\nIncluding " + Arrays.toString(fields) + " fields: "); JavaFindFields.displayCursor(cursor); }
From source file:mongodb.JavaFindFields.java
public static void excludeFields(DBCollection collection, String[] fields) { BasicDBObject query = new BasicDBObject("first", "p"); BasicDBObject fieldDoc = new BasicDBObject(); for (final String field : fields) { fieldDoc.append(field, false);/*from w w w . j ava 2 s . c om*/ } DBCursor cursor = collection.find(query, fieldDoc); cursor.limit(1); System.out.println("\nExcluding " + Arrays.toString(fields) + " fields: "); JavaFindFields.displayCursor(cursor); }
From source file:mongodb.JavaFindLimit.java
public static void limitResults(DBCollection collection, Integer limit) { BasicDBObject query = new BasicDBObject("first", "p"); DBCursor cursor = collection.find(query); cursor.limit(limit); System.out.println("\nP words Limited to " + limit.toString() + " :"); JavaFindLimit.displayCursor(cursor); }
From source file:mongoDB.MongoDbClientAllImagesAsByteArrays.java
License:Open Source License
@Override public int viewTopKResources(int requesterID, int profileOwnerID, int k, Vector<HashMap<String, ByteIterator>> result) { int retVal = 0; if (profileOwnerID < 0 || requesterID < 0 || k < 0) return -1; com.mongodb.DB db = null;//from w w w. j a v a 2 s . c o m try { db = mongo.getDB(database); db.requestStart(); if (scanResources) { DBCollection collection = db.getCollection("resources"); // find all resources that belong to profileOwnerID // sort them by _id desc coz we want latest ones and get the top // k DBObject q = new BasicDBObject().append("walluserid", Integer.toString(profileOwnerID)); DBCursor queryResult = null; queryResult = collection.find(q); // DBObject s = new BasicDBObject().append("_id", -1); //desc DBObject s = new BasicDBObject(); // desc s.put("_id", -1); queryResult = queryResult.sort(s); queryResult = queryResult.limit(k); Iterator it = queryResult.iterator(); while (it.hasNext()) { HashMap<String, ByteIterator> vals = new HashMap<String, ByteIterator>(); DBObject oneRes = new BasicDBObject(); oneRes.putAll((DBObject) it.next()); vals.putAll(oneRes.toMap()); // needed to do this so the coreworkload will not need to // know the datastore type if (vals.get("_id") != null) { String tmp = vals.get("_id") + ""; vals.remove("_id"); vals.put("rid", new ObjectByteIterator(tmp.getBytes())); } if (vals.get("walluserid") != null) { String tmp = vals.get("walluserid") + ""; vals.remove("walluserid"); vals.put("walluserid", new ObjectByteIterator(tmp.getBytes())); } if (vals.get("creatorid") != null) { String tmp = vals.get("creatorid") + ""; vals.remove("creatorid"); vals.put("creatorid", new ObjectByteIterator(tmp.getBytes())); } result.add(vals); } queryResult.close(); } else { DBCollection collection = db.getCollection("users"); DBObject q = new BasicDBObject().append("_id", profileOwnerID); DBObject queryResult = null; queryResult = collection.findOne(q); String x = queryResult.get("wallResources").toString(); if (!x.equals("[ ]")) { x = x.substring(1, x.length() - 1); String resourceIds[] = x.split(","); BasicDBObject query = new BasicDBObject(); List<Integer> list = new ArrayList<Integer>(); for (int i = resourceIds.length - 1; i >= resourceIds.length - Math.min(k, resourceIds.length); i--) { // to // limit // it list.add(Integer.parseInt(resourceIds[i].trim())); } collection = db.getCollection("resources"); query.put("_id", new BasicDBObject("$in", list)); DBCursor cursor = collection.find(query); while (cursor.hasNext()) { HashMap<String, ByteIterator> vals = new HashMap<String, ByteIterator>(); vals.putAll(cursor.next().toMap()); if (vals.get("_id") != null) { String tmp = vals.get("_id") + ""; vals.remove("_id"); vals.put("rid", new ObjectByteIterator(tmp.getBytes())); } if (vals.get("walluserid") != null) { String tmp = vals.get("walluserid") + ""; vals.remove("walluserid"); vals.put("walluserid", new ObjectByteIterator(tmp.getBytes())); } if (vals.get("creatorid") != null) { String tmp = vals.get("creatorid") + ""; vals.remove("creatorid"); vals.put("creatorid", new ObjectByteIterator(tmp.getBytes())); } result.add(vals); } cursor.close(); } } } catch (Exception e) { System.out.println(e.toString()); retVal = -1; } finally { if (db != null) { db.requestDone(); } } return retVal; }
From source file:net.ion.framework.db.mongo.jdbc.MongoStatement.java
License:Apache License
public ResultSet executeQuery(String sql) throws SQLException { // TODO//from w w w . j a v a 2s . co m // handle max rows DBCursor cursor = new Executor(conn.getDB(), sql).query(); if (fetchSize > 0) cursor.batchSize(fetchSize); if (maxRows > 0) cursor.limit(maxRows); last = MClientResultSet.create(cursor); return last; }
From source file:net.kamradtfamily.mongorest.AggregateServlet.java
License:GNU General Public License
@Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doPost()"); InputStream is = req.getInputStream(); String db_name = req.getParameter("dbname"); String col_name = req.getParameter("colname"); if (db_name == null || col_name == null) { error(res, SC_BAD_REQUEST, Status.get("param name missing")); return;/*from w ww . j a va2s . c o m*/ } String skip = req.getParameter("skip"); String limit = req.getParameter("limit"); DB db = mongo.getDB(db_name); DBCollection col = db.getCollection(col_name); BufferedReader r = null; DBObject q = null, sort = 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; } // sort param data = r.readLine(); if (data != null) { try { sort = (DBObject) JSON.parse(data); } catch (JSONParseException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse sort arg")); return; } } } finally { if (r != null) r.close(); } DBCursor c; if (sort == null) c = col.find(q); else c = col.find(q).sort(sort); if (c == null) { 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(); // reset buf buf.setLength(0); int no = 0; buf.append("["); while (c.hasNext()) { DBObject o = c.next(); JSON.serialize(o, buf); buf.append(","); no++; } 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:net.kamradtfamily.mongorest.AggregateServlet.java
License:GNU General Public License
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doGet()"); String db_name = req.getParameter("dbname"); String col_name = req.getParameter("colname"); if (db_name == null || col_name == null) { error(res, SC_BAD_REQUEST, Status.get("param name missing")); return;// www .j a v a 2 s. c o m } String skip = req.getParameter("skip"); String limit = req.getParameter("limit"); DB db = mongo.getDB(db_name); DBCollection col = db.getCollection(col_name); DBCursor c = col.find(); if (c == null) { 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(); JSON.serialize(o, buf); buf.append(","); no++; } 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:net.kamradtfamily.mongorest.QueryServlet.java
License:GNU General Public License
@Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { log.fine("doPost()"); // server auth String ret;/* ww w.j a v a 2 s. c om*/ 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; } } String skip = req.getParameter("skip"); String limit = req.getParameter("limit"); String _fields = req.getParameter("fields"); String fields[] = null; if (_fields != null) fields = _fields.split("[,]"); 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); StringBuilder buf = tl.get(); // reset buf buf.setLength(0); BufferedReader r = null; DBObject q = null, sort = 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); if (cache != null) { buf.append(db_name); buf.append(col_name); buf.append(data); } } catch (JSONParseException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse data")); return; } // sort param data = r.readLine(); if (data != null) { try { sort = (DBObject) JSON.parse(data); } catch (JSONParseException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse sort arg")); return; } if (cache != null) buf.append(data); } } finally { if (r != null) r.close(); } // limit int lim; if (limit != null) { try { lim = Math.min(Integer.parseInt(limit), MAX_FIELDS_TO_RETURN); } catch (NumberFormatException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse limit")); return; } } else { lim = MAX_FIELDS_TO_RETURN; } if (cache != null) { buf.append(";limit="); buf.append(lim); } // skip int sk = -1; if (skip != null) { try { sk = Integer.parseInt(skip); if (cache != null) { buf.append(";skip="); buf.append(sk); } } catch (NumberFormatException e) { error(res, SC_BAD_REQUEST, Status.get("can not parse skip")); return; } } // fields if (cache != null && _fields != null) { buf.append(";fields="); buf.append(_fields); } // from cache String cache_key = null; if (cache != null) { cache_key = buf.toString(); try { ret = (String) cache.get(cache_key); } // some wrong char in key catch (IllegalArgumentException e) { int l = buf.length(); for (int i = 0; i < l; i++) { if (buf.charAt(i) == ' ') buf.setCharAt(i, '*'); } cache_key = buf.toString(); ret = (String) cache.get(cache_key); } if (ret != null) { out_str(req, ret, "application/json"); return; } } // cursor DBCursor c; if (fields != null) { StringBuilder sb = new StringBuilder(); sb.append("{"); int len = fields.length; for (int i = 0; i < len; i++) { String s = fields[i]; sb.append('"'); sb.append(s); sb.append('"'); sb.append(":1"); if (i != (len - 1)) sb.append(","); } sb.append("}"); c = col.find(q, (DBObject) JSON.parse(sb.toString())); } else c = col.find(q); if (c == null || c.count() == 0) { error(res, SC_NOT_FOUND, Status.get("no documents found")); return; } if (sort != null) c.sort(sort); res.setIntHeader("X-Documents-Count", c.count()); c.limit(lim); if (sk != -1) c.skip(sk); // 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(']'); res.setIntHeader("X-Documents-Returned", no); ret = buf.toString(); if (cache != null) cache.set(cache_key, ret); out_str(req, ret, "application/json"); }