永发信息网

java+mongodb的正确使用方法!

答案:3  悬赏:0  手机版
解决时间 2021-02-04 14:31
java+mongodb的正确使用方法!
最佳答案
private Mongo mog = null;
  02 private DB db = null;
  03 private DBCollection dbc = null;
  04
  05
  08 public MongoTest(){
  09 //实例化Mongo 会默认连接你的数据库
  10 try {
  11 mog = new Mongo();
  12 } catch (UnknownHostException e) {
  13 e.printStackTrace();
  14 } catch (MongoException e) {
  15 e.printStackTrace();
  16 }
  17
  18 //得到MyTest数据库,如果不存在会自动创建
  19 db = mog.getDB("MyTest");
  20
  21 //得到集合,相当于其他数据库的表,如果没有也会自动创建
  22 dbc = db.getCollection("table1");
  23 }

  做梦也很累

  2.这个是我查询table1集合中所有的数据,如果table1不存在的话它会自动创建,

  01 public void selectAll(){
  02 System.out.println("查询table1中的所有数据:");
  03
  04 //得到查询
  05 DBCursor cur = dbc.find();
  06
  07 //遍历结果
  08 while(cur.hasNext()){
  09 System.out.println(cur.next());
  10 }
  11 }

  做梦也很累

  3.这个是插入一条文档的方法,这些name/title/age/等等都是你随便添加的,哪怕你第一次添加三个、第二次添加一个、第三次添加10个都没有问题,

  01 public void insert(){
  02 DBObject msg = new BasicDBObject();
  03
  04 //赋值
  05 msg.put("name", "qlier");
  06 msg.put("age", "21");
  07 msg.put("sex", "男");
  08 msg.put("email", "xiuxu123@live.cn");
  09
  10 //保存数据,获取影响行数
  11 int result = dbc.save(msg).getN();
  12
  13 System.out.println("插入结果:" + result);
  14 }

  做梦也很累

  4.这个是删除的方法,删除是要说的,它可以根据_id删除,这个_id是系统生成的,这个是很重要的一个标示,我们删除的时候可以根据它删除也可以根据其他的删除。

  01 public void updateById(){
  02 //要修改的_id
  03 DBObject msg1 = new BasicDBObject("_id", new ObjectId("4f3b26b5f8293433e7043e4d"));
  04
  05 //要修改的值
  06 DBObject msg2 = new BasicDBObject();
  07 //如果这一个文档很多字段,你就修改一个字段,那么其他的字段会被删除
  08 msg2.put("name", "Qlier1");
  09
  10 //修改name,如果name值不存在会重新添加这天数据
  11 int result = dbc.update(msg1, msg2).getN();
  12
  13 System.out.println("修改结果:" + result);
全部回答
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("sun"); //得到所有数据库 // List<String> 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("stu"); //查看一个表的索引 // 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); // //批量插入 // List<DBObject> datas=new ArrayList<DBObject>(); // for(int i=0;i<10;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()); //添加 // Map<Object,Object> map=new HashMap<Object,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()); // List<DBObject> list=coll.find().toArray(); // for(Object obj:list){ // System.out.println(obj); // } // DBObject dbc=new BasicDBObject(); // dbc.put("name",
dbcollection dbc = db.getcollection("role"); dbc.sethintfields(null); 虽然3.0以后版本中 dbcollection方法 已过时,可以将就用 直接用 $hint 操作符 db.users.find( { name: {}, $hint: { age : 1 } } ) 参考地址 https://docs.mongodb.org/manual/reference/operator/meta/hint/#metaop._s_hint
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2015的学习计划,100字
中国电信(寅阳镇江夏村)地址有知道的么?有点
于都一中录取分数线会不会下降?
嘴巴出血怎么办
求无缝钢管壁厚标准,据说不同规格壁厚不一样
25岁服用比智高应该用多少量?
re:creators百度云资源 急求……
山竹冲怎么去啊,有知道地址的么
安徽九华山求子真的灵验吗?现在7 8月份去九
光伏(特指不向电网发送功率的产品)为何要并
中国电信(壮志村陈壮线西)地址在哪,我要去那
金园种苗地址在什么地方,想过去办事
防弹头盔多重?美军的。。。
起重量在()以上应提交专业方案论证报告。A.10
京东红米4x,3g32g.899元入手性价比怎么样
推荐资讯
金都宾馆(郴州桂东县)地址有知道的么?有点事
iPhone6 Plus什么时候有货
好客连锁酒店(武胜假日广场店)怎么去啊,我
精立佳产品采用的是什么技术?
生介的意思是什么啊?知道的请说下!
小红伞怎么退出
对讲机 Synth lock 怎么办
(1)应允别人的话叫 ( 言) (2)分别人勉
頿王的意思是什么啊?知道的请说下!
切言的意思是什么啊?知道的请说下!
28岁能参加不能超过28周岁的考试吗?
南通市工伤九极脸部烧伤能陪多少钱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?