因为使用distinct所有并不能使用skip和limit,只能遍历取出其中前十条数据
DistinctIterable<String> distinct = mgcldistinct("userName", Stringclass);
MongoCursor<String> iterator = distinctiterator();
List<String> myList = new ArrayList<>();
while(iteratorhasNext()){
if(myListsize()>10){
break;
}
myListadd(iteratornext());
}
package mavendemotest;
import javautilArrayList;
import javautilList;
import commongodbBasicDBObject;
import commongodbDB;
import commongodbDBCollection;
import commongodbDBObject;
import commongodbMongo;
import commongodbQueryOperators;
public class MongoDB {
private static void print(String str){
Systemoutprintln(str);
}
public static void main(String[] args) {
try {
//创建连接
Mongo m=new Mongo("127001", 27017);
//得到数据库
DB db=mgetDB("test");
//得到所有数据库
// List<String> colls=mgetDatabaseNames();
// for(String str:colls){
// Systemoutprintln(str);
// }
// //得到所有的集合(表)
// for(String collection:dbgetCollectionNames()){
// Systemoutprintln(collection);
// }
//删除一个数据库
//mdropDatabase("sun");
//得到sun表
DBCollection coll=dbgetCollection("things");
//查看一个表的索引
// for(DBObject index:collgetIndexInfo()){
// Systemoutprintln(index);
// }
// DBObject myDoc=collfindOne();
// Systemoutprintln(myDoc);
//添加
// BasicDBObject doc=new BasicDBObject();
// docput("name", "sunshan");
// docput("sex", "男");
// docput("age", 22);
//collinsert(doc);
//删除
//collremove(doc);
// BasicDBObject doc1=new BasicDBObject();
// doc1put("i", 0);
// doc1put("j", "foo");
// BasicDBObject doc2=new BasicDBObject();
// doc2put("hello", "world");
// doc1put("doc2", doc2);
// collinsert(doc1);
//修改
// BasicDBObject doc3=new BasicDBObject();
// doc3put("x", 6);
// BasicDBObject doc4=new BasicDBObject();
// doc4put("x", 1);
// collupdate(doc3, doc4,true,false);
//如果数据库不存在就添加 |多条修改 false只修改第一天,true如果有多条就不修改
//条件查询
//Systemoutprintln(collfind(doc4));
//collfindAndRemove(doc4);
// //批量插入
// List<DBObject> datas=new ArrayList<DBObject>();
// for(int i=0;i<10;i++){
// BasicDBObject bd=new BasicDBObject();
// bdput("name", "data");
// bdappend("age", i);
// datasadd(bd);
// }
// collinsert(datas);
//添加
// BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilderstart();
// documentBuilderadd("database", "mkyongDB");
// documentBuilderadd("table", "hosting");
// BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilderstart();
// documentBuilderDetailadd("records", "99");
// documentBuilderDetailadd("index", "vps_index1");
// documentBuilderDetailadd("active", "true");
// documentBuilderadd("detail", documentBuilderDetailget());
// collinsert(documentBuilderget());
//添加
// Map<Object,Object> map=new HashMap<Object,Object>();
// mapput("a", 1);
// mapput("b", "b");
// collinsert(new BasicDBObject(map));
//添加
// String json ="{'1' : '1','2' : '2',"+"'11' : {'1' : 1, '2' : '2', '3' : '3'}}";
// DBObject dbobject=(DBObject)JSONparse(json);
// collinsert(dbobject);
//更新
// BasicDBObject bdo=new BasicDBObject();
// bdoput("x", 11);
// collupdate(new BasicDBObject()append("x", 0), bdo);
//更新
// BasicDBObject bdo=new BasicDBObject()append("$inc", new BasicDBObject()append("x", 12));
// collupdate(new BasicDBObject()append("x", 11), bdo);
//更新
//如果不使用$set 直接是 age则所有的都会更新
//根据age为9条件把name:data修改为 name:sun
// BasicDBObject bdo=new BasicDBObject()append("$set", new BasicDBObject()append("name", "sunshan"));
// collupdate(new BasicDBObject()append("age", 9), bdo);
//更新
//根据name为data条件把age:批量修改为 age:age
// BasicDBObject bdo=new BasicDBObject()append("$set", new BasicDBObject()append("age", "age"));
// collupdate(new BasicDBObject()append("name", "data"), bdo,false, true);
//查询age=1
// print("find:"+collfind(new BasicDBObject("age", 1))toArray());
//查询age<=1
// print("find: "+collfind(new BasicDBObject("age", new BasicDBObject("$lte", 1)))toArray());
//查询age>=1
// print("fint: "+collfind(new BasicDBObject("age", new BasicDBObject("$gte", 1)))toArray());
//查询age!=1
// print("fint: "+collfind(new BasicDBObject("age", new BasicDBObject("$ne", 1)))toArray());
//查询age=1,2,3
// print("fint: "+collfind(new BasicDBObject("age", new BasicDBObject(QueryOperatorsIN ,new int[]{1,2,3})))toArray());
//查询age!=1,2,3
// print("find: "+collfind(new BasicDBObject("age" ,new BasicDBObject(QueryOperatorsNIN ,new int[]{1,2,3})))toArray());
// print("find: "+collfind(new BasicDBObject("age" ,new BasicDBObject(QueryOperatorsEXISTS ,true)))toArray());
//查询age属性
// print("find: "+collfind(null ,new BasicDBObject("age" ,true))toArray());
// List<DBObject> list=collfind()toArray();
// for(Object obj:list){
// Systemoutprintln(obj);
// }
//true查询出来存在的 /false 查询出来不存在的
//print(""+collfind(new BasicDBObject("y",new BasicDBObject(QueryOperatorsEXISTS,false)))toArray());
// DBObject dbc=new BasicDBObject();
// dbcput("name", 1111);
// List<DBObject> list=new ArrayList<DBObject>();
// listadd(dbc);
// Systemoutprintln(collinsert(list)getN());
// //查询部分数据块
// DBCursor cursor=collfind()skip(1);
// while(cursorhasNext()){
// Systemoutprintln(cursornext());
// }
// DBCursor cur=collfind(); //DBCursor cur=collfind()limit(2);
// while(curhasNext()){
// Systemoutprintln(curnext());
// }
//Systemoutprintln(curgetCursorId()+" "+curcount()+" "+JSONserialize(cur));
//条件查询
BasicDBObject doc5=new BasicDBObject();
doc5put("$gt", 1);
doc5put("$lt", 3);
print("find 21<y<23:"+collfind(new BasicDBObject("y", doc5))toArray());
// BasicDBObject doc5=new BasicDBObject();
// doc5put("$gt", 1);
// doc5put("$lt", 3);
// BasicDBObject doc6=new BasicDBObject();
// doc6put("x", doc5);
// Systemoutprintln(collfind(doc6));
} catch (Exception e) {
eprintStackTrace();
}
}
}
定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头需要将十进制的数以二进制的数表示出来可以参照下例:inta=10;Systemoutprintln(IntegertoBinaryString(a));转换成八进制把Binary换成Octal转换成十六进制把Binary换成Hex解释:Binary是二进制的意思,Octal是八进制的意思,Hex是十六进制的意思。
java *** 作mongodb进行查询,常用筛选条件的设置如下:
条件列表:
BasicDBList
condList
=
new
BasicDBList();
临时条件对象:
BasicDBObject
cond
=
null;
DBCollection
coll
=
dbgetCollection("A");
1、$where
在某种应用场合,若要集合A查询文档且要满足文档中某些属性运算结果,可以编写一脚本函数用where进行设置,比如:
某集合中存放的用户信息,包括姓名、年龄、手机号、地址等,要筛选出年龄大于20且小于等于40的用户,我们可以这样:
String
ageStr
=
"function
(){return
parseFloat(thisage)
>
20
&&
parseFloat(thisage)
<=
40};";
cond
=
new
BasicDBObject();
condput("$where",ageStr);
放入条件列表
condListadd(cond);
2、$in
接1实例中,要查询年龄为23、40、50的用户信息,我们可以这样:
创建一个临时的条件列表对象,将条件值分别添加进去
BasicDBList
values
=
new
BasicDBList();
valuesadd(23);
valuesadd(40);
valuesadd(50);
cond
=
new
BasicDBObject();
condput("age",new
BasicDBObject("$in",values));
放入条件列表
condListadd(cond);
3、模糊匹配
接1实例中,要按照用户的姓名进行模糊查询,如:王,我们可以这样做:
使用不区分大小写的模糊查询
31完全匹配
以上就是关于java-mongodb中怎么distinct取前10条数据全部的内容,包括:java-mongodb中怎么distinct取前10条数据、高手帮帮忙,我刚接触mongodb,怎么用java对mongodb数据库进行多条件查询,先谢谢了、您好,请问java是怎么提取mongodb3.2的二进制流的,求助~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)