java+mongodb的正确使用方法!
答案:3 悬赏:0 手机版
解决时间 2021-02-04 14:31
- 提问者网友:辞取
- 2021-02-03 14:00
java+mongodb的正确使用方法!
最佳答案
- 五星知识达人网友:西风乍起
- 2021-02-03 14:18
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);
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);
全部回答
- 1楼网友:枭雄戏美人
- 2021-02-03 16:15
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",
- 2楼网友:七十二街
- 2021-02-03 14:46
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯