mongoDB Vs MySQL
文档型数据库 Vs 关系型数据库
database Vs database
collection Vs table
document Vs row
下载mongoDB
sudo apt-get install mongodb
操作mongoDB开启数据库:
sudo service mongodb start//一般下载完自动开启
连接数据库:mongo
关闭数据库:sudo service mongodb stop
一、数据库常用命令
选择(切换)database(如果没有,则新建一个database)
use databasename;
查看所有database
show dbs;
删除database(use目标database然后输入以下代码)
db.dropDatabase();
查看当前使用database
db.getName();
二、Collection聚集集合
1、创建一个聚集集合](table)
db.createCollection(“collName”, {size: 20, capped: 5, max: 100});
//创建成功会显示{"OK":1}
2、得到指定名称的聚集集合(table)
db.getCollection("account");
3、得到当前db的所有聚集集合
db.getCollectionNames();
4、显示当前db所有聚集索引的状态
db.printCollectionStats();
三、聚集集合查询
1、查询所有记录
db.collectionsname.find();
//相当于MySQL的select* from collectionsname;
可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。
2、查询去掉后的当前聚集集合中的某列的重复数据
db.collectionsname.distinct("name");
//会过滤掉name中的相同数据
//相当于MySQL的select distict name from tablename;
3、查询给定特征的记录
gt : 大于 ; lt: 小于 ; gte: 大于等于; lte: 小于等于
db.collectionsname.find({"age": 22});
//会查找age=22的记录
//相当于MySQL的 select * from collectionsname where age = 22;
db.collectionsname.find({age: {$gt: 22}});
//查询age > 22的记录
//相当于MySQL的select * from collectionsname where age >22;
四、文档中增加新的记录(新记录不需要与原来的具有同样的属性)
db.collectionsname.insert({ });
//相当与MySQL中的插入语句:insert into tablename(attr 1, attr2 , attr3) values (value1, value2, value3);
五、文档中修改记录
db.collection.update(criteria, objNew, upsert, multi)
criteria: update的查询条件, 类似sql update 查询内where 后面的;
objNew: update 的对象和一些更新的操作符等,也可以理解为sql update查询内set后面的
upset: 这个参数的意思是, 如果不存在update的记录, 是否插入objNew, true为插入, 默认是false, 不插入.
Multi: mongodb默认是false, 只更新找到的第一条记录, 如果这个参数为true, 就把按条件查出来多条记录全部更新.
六、 文档中删除记录:
db.collectionsname.remove({ });