本篇文章给大家谈谈mongodb编程java,以及mongodb源码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、如何在Java中对MongoDB按日期进行查询统计2、java怎么做到使用mongodb的原生命令来执行操作3、用java怎么连接一个不带账号密码的mongodb数据库4、有没有大神 java连接mongodb遇到了问题5、mongodb 语句转java
如何在Java中对MongoDB按日期进行查询统计
方法一:通过构造BasicDBObject对象来进行查询
[java] view plain copy
int startYear=2015,endYear=2016;
int startMonth=12,endMonth=1;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject(“applydate”, new BasicDBObject(“$gte”, new Date(startYear – 1900, startMonth – 1, startDay)).append(“$lt”, new Date(endYear – 1900, endMonth -1, endDay)));//因为无法确知当前月有多少天,所以就从当月的1号(包含)计到下月1号(不包含)
int iCount = cltApplies.find(query).count();
System.out.println(iCount);
经测试上述代码执行完毕后iCount为9。也就是在2016-1-1至2016-1-31期间有9条记录。
方法二:通过BasicDBObjectBuilder对象来查询:
[java] view plain copy
int startYear=2016,endYear=2016;
int startMonth=1,endMonth=2;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject();
query.put(“applydate”, BasicDBObjectBuilder.start(“$gte”, new Date(startYear – 1900, startMonth – 1, startDay)).add(“$lt”, new Date(endYear – 1900, endMonth – 1, endDay)).get());
int iCount = cltApplies.find(query).count();
System.out.println(iCount);
上述代码执行后iCount同样为9。
注意:因为java.util.Date(year,month,day)这个构造函数中year是超出1900的年数,所以需要减去1900;month从0开始,所以需要减去1。这个问题容易被初学者忽视。
下面扩展地说一下如果要进行带日期过滤条件的统计,该如何做。
前面的东西都相同,只是在统计的时候需要调用集合的distinct方法。如统计某个字段不重复的值有哪些,可用如下写法:
[java] view plain copy
int startYear=2016,endYear=2016;
int startMonth=1,endMonth=2;
int startDay=1,endDay=1;
BasicDBObject query= new BasicDBObject();
query.put(“applydate”, BasicDBObjectBuilder.start(“$gte”, new Date(startYear – 1900, startMonth – 1, startDay)).add(“$lt”, new Date(endYear – 1900, endMonth – 1, endDay)).get());
ListString lstUserIds = cltApplies.distinct(“userId”, query);
System.out.println(lstUserIds.size());
上面这段代码的执行结果为4。也就是在2016-1-1至2016-1-31之间出现了4个不同的userId。
java怎么做到使用mongodb的原生命令来执行操作
public class MongoDBJDBC { public static void main(String[] args) { try { // 实例化Mongo对象,连接27017端口 Mongo mongo = new Mongo(“www.easyaq.com”, 27017); // 连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
用java怎么连接一个不带账号密码的mongodb数据库
package maven.demo.test;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryOperators;
public class MongoDB {
private static void print(String str){
System.out.println(str);
}
public static void main(String[] args) {
try {
//创建连接
Mongo m=new Mongo(“127.0.0.1”, 27017);
//得到数据库
DB db=m.getDB(“test”);
//得到所有数据库
//ListString colls=m.getDatabaseNames();
//for(String str:colls){
//System.out.println(str);
//}
////得到所有的集合(表)
//for(String collection:db.getCollectionNames()){
//System.out.println(collection);
//}
//删除一个数据库
//m.dropDatabase(“sun”);
//得到sun表
DBCollection coll=db.getCollection(“things”);
//查看一个表的索引
//for(DBObject index:coll.getIndexInfo()){
//System.out.println(index);
//}
//DBObject myDoc=coll.findOne();
//System.out.println(myDoc);
//添加
//BasicDBObject doc=new BasicDBObject();
//doc.put(“name”, “sunshan”);
//doc.put(“sex”, “男”);
//doc.put(“age”, 22);
//coll.insert(doc);
//删除
//coll.remove(doc);
//BasicDBObject doc1=new BasicDBObject();
//doc1.put(“i”, 0);
//doc1.put(“j”, “foo”);
//BasicDBObject doc2=new BasicDBObject();
//doc2.put(“hello”, “world”);
//doc1.put(“doc2”, doc2);
//coll.insert(doc1);
//修改
//BasicDBObject doc3=new BasicDBObject();
//doc3.put(“x”, 6);
//BasicDBObject doc4=new BasicDBObject();
//doc4.put(“x”, 1);
//coll.update(doc3, doc4,true,false);
//如果数据库不存在就添加 |多条修改 false只修改第一天,true如果有多条就不修改
//条件查询
//System.out.println(coll.find(doc4));
//coll.findAndRemove(doc4);
////批量插入
//ListDBObject datas=new ArrayListDBObject();
//for(int i=0;i10;i++){
//BasicDBObject bd=new BasicDBObject();
//bd.put(“name”, “data”);
//bd.append(“age”, i);
//datas.add(bd);
//}
//coll.insert(datas);
//添加
// BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start();
//documentBuilder.add(“database”, “mkyongDB”);
//documentBuilder.add(“table”, “hosting”);
//BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start();
//documentBuilderDetail.add(“records”, “99”);
//documentBuilderDetail.add(“index”, “vps_index1”);
//documentBuilderDetail.add(“active”, “true”);
//documentBuilder.add(“detail”, documentBuilderDetail.get());
//coll.insert(documentBuilder.get());
//添加
//MapObject,Object map=new HashMapObject,Object();
//map.put(“a”, 1);
//map.put(“b”, “b”);
//coll.insert(new BasicDBObject(map));
//添加
//String json =”{‘1’ : ‘1’,’2′ : ‘2’,”+”’11’ : {‘1’ : 1, ‘2’ : ‘2’, ‘3’ : ‘3’}}”;
//DBObject dbobject=(DBObject)JSON.parse(json);
//coll.insert(dbobject);
//更新
//BasicDBObject bdo=new BasicDBObject();
//bdo.put(“x”, 11);
//coll.update(new BasicDBObject().append(“x”, 0), bdo);
//更新
//BasicDBObject bdo=new BasicDBObject().append(“$inc”, new BasicDBObject().append(“x”, 12));
//coll.update(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”));
//coll.update(new BasicDBObject().append(“age”, 9), bdo);
//更新
//根据name为data条件把age:批量修改为 age:age
//BasicDBObject bdo=new BasicDBObject().append(“$set”, new BasicDBObject().append(“age”, “age”));
//coll.update(new BasicDBObject().append(“name”, “data”), bdo,false, true);
//查询age=1
//print(“find:”+coll.find(new BasicDBObject(“age”, 1)).toArray());
//查询age=1
//print(“find: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(“$lte”, 1))).toArray());
//查询age=1
//print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(“$gte”, 1))).toArray());
//查询age!=1
// print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(“$ne”, 1))).toArray());
//查询age=1,2,3
//print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(QueryOperators.IN ,new int[]{1,2,3}))).toArray());
//查询age!=1,2,3
//print(“find: “+coll.find(new BasicDBObject(“age” ,new BasicDBObject(QueryOperators.NIN ,new int[]{1,2,3}))).toArray());
//print(“find: “+coll.find(new BasicDBObject(“age” ,new BasicDBObject(QueryOperators.EXISTS ,true))).toArray());
//查询age属性
//print(“find: “+coll.find(null ,new BasicDBObject(“age” ,true)).toArray());
//ListDBObject list=coll.find().toArray();
//for(Object obj:list){
//System.out.println(obj);
//}
//true查询出来存在的 /false 查询出来不存在的
//print(“”+coll.find(new BasicDBObject(“y”,new BasicDBObject(QueryOperators.EXISTS,false))).toArray());
//DBObject dbc=new BasicDBObject();
//dbc.put(“name”, 1111);
//ListDBObject list=new ArrayListDBObject();
//list.add(dbc);
//System.out.println(coll.insert(list).getN());
////查询部分数据块
//DBCursor cursor=coll.find().skip(1);
//while(cursor.hasNext()){
//System.out.println(cursor.next());
//}
//DBCursor cur=coll.find(); //DBCursor cur=coll.find().limit(2);
//while(cur.hasNext()){
//System.out.println(cur.next());
//}
//System.out.println(cur.getCursorId()+” “+cur.count()+” “+JSON.serialize(cur));
//条件查询
BasicDBObject doc5=new BasicDBObject();
doc5.put(“$gt”, 1);
doc5.put(“$lt”, 3);
print(“find 21y23:”+coll.find(new BasicDBObject(“y”, doc5)).toArray());
//BasicDBObject doc5=new BasicDBObject();
//doc5.put(“$gt”, 1);
//doc5.put(“$lt”, 3);
//BasicDBObject doc6=new BasicDBObject();
//doc6.put(“x”, doc5);
//System.out.println(coll.find(doc6));
} catch (Exception e) {
e.printStackTrace();
}
}
}
1
有没有大神 java连接mongodb遇到了问题
新版本的mongodb的驱动包是依赖bson.jar和mongodb_driver_core.jar的 官网上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core
去看一下 ,然后对应的地方有两个包的下载,导进你的方法就ok了
下载地址:
MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
mongodb 语句转java
你想做什么?用Java的面向对象往数据库中存东西吗?他有驱动。装个驱动就可以用Java的面向对象造了。
关于mongodb编程java和mongodb源码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。