【实验名称】: MongoDB安装与常用数据操作操作练习
【实验目的】:
1.掌握虚拟机上安装MongoDB。
2.熟悉MongoDB的数据库基本操作。
3.熟悉Java API 连接mongodb进行数据操作
【实验内容及要求】:
1.虚拟机Ubuntu的安装hive。
2.在虚拟机上安装mongodb 。
3.Mongodb Java API
4.常用mongodb 操作
(一)mongodb安装和基本操作及javaAPI练习:
参考内容:http://dblab.xmu.edu.cn/blog/mongodb/
建议采用离线安装方式,安装程序和jdbc驱动在教学平台/资源目录下
注意将ubuntu的更新源改为163.com
启动
查看端口与进程
(二)基本操作练习
创建一个user 数据集,有字段a,b,name,age
将以下的sql语句转换为mongodb的数据查询操作
inert into users value(3,5) db.users.insert({a:3,b:5})
select a,b from users db.users.find({}, {a:1,b:1})
select * from users db.users.find()
(为了后面查询age:33,插入了两条数据)
select * from users where age=33
select a,b from users where age=33 加上限定a,b为1,其他默认0
select * from users where age=33 order by name
再插入几条数据
find一下
select * from users where age>33
select * from users where age!=33
插入几条数据
select * from users where name like “%Joe%”
select * from users where name LIKE “Joe%”
select * from users where age>33 and age<=40
没有结果,gt无e代表没有等于,lte有e则是大于等于。
改为get后可以看到结果如下
select * from users order by name desc (按名字反向排序,由于是字符串,按字典倒叙排序)
select * from users where a=1 and b=‘q’
select * from users limit 10 skip 20
(跳过20条,选剩下的前10条)
(跳过2条,选剩下的前2条)
select * from users where a=1 or b=2
select * from users limit 1
写法2:
select order_id from orders o, order_line_items li where li.order_id=o.order_id and li.sku=12345
select customer.name from customers,orders where orders.id=“q179” and orders.custid=customer.id
select distinct last_name from users
(last_name改为已有的字段name,这样就有了结果)
select count(*y)
from users
也可以看下id,然后统计id,同理,a字段也可以(加上exits限制后就不可以了,但id可以,因为所有BSON行都有id)。
select count(*y)
from users where age > 30
先看一下结果
统计
select count(age) from users
(统计age时,下面添加了限制exist,否则和统计共有多少行BSON数据没有区别)
create index myindexname on users(name)
创建索引
create index myindexname ON users(name,ts desc)
explain select * from users where z=3
.explain()查看信息,索引和统计等
update users set a=1 where b=‘q’
观察到未更改数据,插入一条b=’q’后更改数据,显示一条匹配,一条更改。
观察结果
update users set a=a+2 where b=‘q’
db.users.remove({z:‘abc’});
查询后无结果。
所以删除返回值为0。
插入数据后删除返回值为1。