java-mongodb中怎么distinct取前10条数据

java-mongodb中怎么distinct取前10条数据,第1张

因为使用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的二进制流的,求助~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10215947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存