6. MongoDB——Java操作(增删改查)
转自:https://blog.csdn.net/kai402458953/article/details/79626148
import java.net.UnknownHostException;
import java.util.Iterator;
import java.util.Set; import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException; public class MongoMain { static DB db = null;
static DBCollection coll = null; static {
Mongo m = null;
try {
//m = new Mongo();//默认本地
//m = new Mongo("127.0.0.1");//默认端口
m = new Mongo("127.0.0.1",27017);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
} //获取名为 test 的数据库,不存在的情况下创建
db = m.getDB("test"); //登录数据库(用户名:test,密码:test)
boolean auth = db.authenticate("test", "test".toCharArray());
if(auth){
//只有admin中的用户才有此权限(show dbs)
//获取所有数据库,不显示无collection的db
//System.out.println("所有数据库名:"+m.getDatabaseNames()); //获取名为 user 的collection(相当于表),不存在的情况下创建
coll = db.getCollection("user");
}else{
System.out.println("登录失败!");
}
} public static void main(String[] args) {
MongoMain test = new MongoMain();
if(coll!=null){
test.saveData();
test.searchData();
test.updateData();
test.deleteData();
}
} /**
* 保存数据
*/
public void saveData(){
//录入学生1的信息
BasicDBObject stu1 = new BasicDBObject();
stu1.put("name", "jack");
stu1.put("age", "25");
BasicDBObject sight1 = new BasicDBObject();
sight1.put("left", 1.5);
sight1.put("right", 1.2);
stu1.put("sight", sight1); //录入学生2的信息
BasicDBObject stu2 = new BasicDBObject();
stu2.put("name", "lucy");
stu2.put("age", "22");
BasicDBObject sight2 = new BasicDBObject();
sight2.put("left", 1.0);
sight2.put("right", 1.3);
stu2.put("sight", sight2); //注意:不能直接对sight赋值{left:1.0,right:1.3} coll.insert(stu1);
coll.insert(stu2);
} /**
* 查询数据
*/
public void searchData(){
System.out.println("=======================");
//show collections
//获取数据库下所有的collection,不显示无数据的collection
Set<String> colls = db.getCollectionNames();
showData(colls); System.out.println("======================="); //查询coll中全部记录
DBCursor ite = coll.find();
showData(ite); System.out.println("======================="); //获取第一条记录
DBObject o = coll.findOne();
System.out.println(o); System.out.println("======================="); //统计colletion的数据条数
System.out.println(coll.getCount()); System.out.println("======================="); //查询 name为jack的对象
BasicDBObject query = new BasicDBObject();
query.put("name", "jack");
DBCursor it = coll.find(query);
showData(it); System.out.println("======================="); //查询age小于30,age不等于20的对象
BasicDBObject query2 = new BasicDBObject();
query2.put("age", new BasicDBObject("$lt", 30));
query2.put("age", new BasicDBObject("$ne", 20));
DBCursor it2 = coll.find(query2);
showData(it2);
} /**
* 修改数据
*/
public void updateData(){
BasicDBObject query = new BasicDBObject();
query.put("name", "lucy");
//这里的new_info对象一定要是find出的而不是new的,否则多字段的情况下就会丢失其它字段信息
DBObject new_info = coll.findOne(query); //方法一(缺点,必须把2个值都put进去)
BasicDBObject sight = new BasicDBObject();
sight.put("left", 1.3);
sight.put("right", 1.3);
new_info.put("sight", sight); //方法二(优点,只需设置要修改的字段的值)
DBObject obj = (DBObject)new_info.get("sight");
obj.put("right", 1.5); coll.update(query, new_info);
} /**
* 删除数据
*/
public void deleteData(){
BasicDBObject data = new BasicDBObject();
//删除名称为lucy的记录
data.put("name", "lucy");
//传入[空实例]删除所有
coll.remove(data);
} /**
* 遍历显示结果
* @param result
*/
@SuppressWarnings("rawtypes")
public void showData(Iterable result){
Iterator it = result.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
6. MongoDB——Java操作(增删改查)的更多相关文章
- Hbase常用操作(增删改查)
Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区 作者:net19880504 [字体:大 中 小] 运行Eclipse,创建一个新的Java工程“HBa ...
- 利用koa实现mongodb数据库的增删改查
概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...
- Android-Sqlite-OOP方式操作增删改查
之前写的数据库增删改查,是使用SQL语句来实现的,Google 就为Android开发人员考虑,就算不会SQL语句也能实现增删改查,所以就有了OOP面向对象的增删改查方式 其实这种OOP面向对象的增删 ...
- JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件
JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...
- nodejs对mongodb数据库的增删改查操作(转载)
首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...
- java单机操作redis3.2.10和集群操作增删改查
先直接附上单机版的连接和增删改查,7000-7005是端口号 package com.yilian.util; import java.util.HashMap; import java.util.I ...
- 69.nodejs对mongodb数据库的增删改查操作
转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...
- MongoDB --- 02. 基本操作,增删改查,数据类型,比较符,高级用法,pymongo
一.基本操作 . mongod 启动服务端 2. mongo 启动客户端 3. show databses 查看本地磁盘的数据库 4. use 库名 切换到要使用的数据库 5. db 查看当前使用的数 ...
- webpack4+express+mongodb+vue 实现增删改查
在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...
- Hibernate修改操作 删除操作 查询操作 增加操作 增删改查 Hibernate增删查改语句
我用的数据库是MySQL,实体类叫User public class User { private Integer uid; private String username; private Stri ...
随机推荐
- POJ——T2352 Stars
http://poj.org/problem?id=2352 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 46592 ...
- 记一次在广播(BroadcastReceiver)或服务(Service)里弹窗的“完美”实践
事情是这样的,目前在做一个医疗项目,需要定时在某个时间段比如午休时间和晚上让我们的App休眠,那么这个时候在休眠时间段如果用户按了电源键点亮屏幕了,我们就需要弹出一个全屏的窗口去做一个人性化的提示,“ ...
- Android与server通信的方法之中的一个(json)效率不高安全性不好
http通信.以xml或者json为载体.相互通信数据. Android对于http的网络通信,提供了标准的java接口--httpURLConnection接口.以及apache的接口--httpc ...
- Android之使用weight属性实现控件的按比例分配空间
从今天開始,把看书时候的知识点整理成博客, 这个比較简单,预计有经验的都用过,weight属性 在做Android布局的时候,常常遇到须要几个控件按比例分配空间的情况 比方下图效果 在底部设置两个bu ...
- Codeforces 930A. Peculiar apple-tree (dfs)
题目: 代码: #include <bits\stdc++.h> using namespace std; ]; //b[i]表示距离1号花絮i步的花絮的个数 map <int, l ...
- First-class citizen
In programming language design, a first-class citizen (also type, object, entity, or value) in a giv ...
- [arc076f]Exhausted? - 贪心
题意: 给你m个椅子可以坐人,初始坐标为正整数1~m,有n个人,每个人希望坐的位置$\leq L_i$或者$\geq R_i$,可以添加若干个椅子在任意的实数位置,求最少要添加多少椅子使得所有人都有位 ...
- WebRTC | Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to parse SessionDescription. a=msid: Missing track ID in msid attribute.
1.问题回放 使用如下代码获取局域网IP报错 (代码来源:https://github.com/diafygi/webrtc-ips 日期:2019-02-16) Uncaught (in promi ...
- 洛谷3627 [APIO2009]抢掠计划
题目描述 输入格式: 第一行包含两个整数 N.M.N 表示路口的个数,M 表示道路条数.接下来 M 行,每行两个整数,这两个整数都在 1 到 N 之间,第 i+1 行的两个整数表示第 i 条道路的起点 ...
- HDU-1052 Tian Ji -- The Horse Racing 贪心 考虑特殊位置(首尾元素)的讨论
题目链接:https://cn.vjudge.net/problem/HDU-1052 题意 田忌赛马问题扩展版 给n匹马,马的能力可以相同 问得分最大多少 思路 贪心做得还是太少,一开始一点思虑都没 ...