MongoDB库的操作
1.Help查看命令提示
help
db.help()
db.test.help()
db.test.find().help()
2.创建/切换数据库
use music
3.查询数据库
show dbs 空库将不会显示
db.albums.insertOne({‘title’:‘bey bey’})来插入一条后再看
4.查看当前使用的数据库
db/db.getName()
5.显示当前DB状态
db.stats()
6.查看当前DB版本
db.version()
7.查看当前DB的链接机器地址
db.getMongo()
8.删除数据库
db.dropDatabase()
Collection聚集集合操作
1.创建一个聚集集合
db.createCollection(“collName”, {size(集合大小): 20, capped(固定大小,可提高使用效率): true, max(最大值): 100});
db.collName.isCapped(); //判断集合是否为定容量
2.得到指定名称的聚集集合
db.getCollection(“account”);
3.得到当前db的所有聚集集合
db.getCollectionNames();
4.显示当前db所有聚集的状态
db.printCollectionStats();
添加、修改与删除集合数据
1.查看
db.users.find()
2.添加
db.users.save({name: ‘zhangsan’, age: 25, sex: true});
db.users.insertOne({name: ‘zhangsan’, age: 25, sex: true});
db.users.insertMany([{name: ‘zhangsan’, age: 25, sex: true},{name: ‘zhangsan’, age: 25, sex: true}]);
3.修改
db.users.update({age: 25}(约定条件,全部修改只写{}), {$set: {name: ‘changeName’,sex:1}}, false, true);
第三个参数为,如果没有这个数据,会不会创建,第四个参数为,如果有很多,是要全改true,还是只改第一条
相当于:update users set name = ‘changeName’ where age = 25;
db.users.update({name: ‘Lisi’}, {$inc: {age: 50}}, false, true);
相当于:update users set age = age + 50 where name = ‘Lisi’;
db.users.update({name: ‘Lisi’}, {$inc: {age: 50}, $set: {name: ‘hoho’}}, false, true);
相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
4.删除
db.users.remove({age: 32});符合条件全删
db.users.remove({age: 132},{justone:true});只删一条
db.users.remove({});删除所有document
5.查询修改删除
db.users.findAndModify({
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
db.runCommand({ findandmodify : "users",
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
6.query 过滤条件 $gte大于
sort如果多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操作,-1位为降序
remove 若为true,被选中对象将在返回前被删除
update 一个 修改器对象
remove 创建新对象若查询结果为空
聚集集合查询
1.查询所有记录
db.userInfo.find();
相当于:select * from userInfo;
2.查询去重后数据
db.userInfo.distinct(“name”);
相当于:select distict name from userInfo;
3.查询age = 22的记录
db.userInfo.find({“age”: 22});
相当于: select * from userInfo where age = 22;
4.查询age > 22的记录
db.userInfo.find({age: {$gt: 22}});
相当于:select * from userInfo where age >22;
5.查询age < 22的记录
db.userInfo.find({age: {$lt: 22}});
相当于:select * from userInfo where age <22;
6.查询age >= 25的记录
db.userInfo.find({age: {$gte: 25}});
相当于:select * from userInfo where age >= 25;
7.查询age <= 25的记录
db.userInfo.find({age: {$lte: 25}});
8.查询age >= 23 并且 age <= 26
db.userInfo.find({age: {$gte: 23, $lte: 26}});
9.查询name中包含 mongo的数据
db.userInfo.find({name: /mongo/});
//相当于%%
select * from userInfo where name like ‘%mongo%’;
10.查询name中以mongo开头的
db.userInfo.find({name: /^mongo/});
相当于select * from userInfo where name like ‘mongo%’;
11.查询指定列name、age数据
db.userInfo.find({}, {name: 1, age: 1});
相当于:select name, age from userInfo;
12.查询指定列name、age数据, age > 25
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
相当于:select name, age from userInfo where age >25;
13.按照年龄排序排序
升序:db.userInfo.find().sort({age: 1});
降序:db.userInfo.find().sort({age: -1});
14.查询name = zhangsan, age = 22的数据
db.userInfo.find({name: ‘zhangsan’, age: 22});
相当于:select * from userInfo where name = ‘zhangsan’ and age =
’22’;
15.查询前5条数据
db.userInfo.find().limit(5);
相当于:select top 5 * from userInfo;
16.查询10条以后的数据
db.userInfo.find().skip(10);
相当于:select * from userInfo where id not in (
select top 10 * from userInfo
);
17.查询在5-10之间的数据
db.userInfo.find().limit(10).skip(5);
18.or与 查询
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
相当于:select * from userInfo where age = 22 or age = 25;
19.查询第一条数据
db.userInfo.findOne();
相当于:selecttop 1 * from userInfo;
db.userInfo.find().limit(1);
20.查询某个结果集的记录条数
db.userInfo.find({age: {$gte: 25}}).count();
相当于:select count(*) from userInfo where age >= 20;