MongoDB数据库操作简单命令

* Help查看命令提示


help


db.help()


db.test.help()


db.test.find().help()


* 创建/切换数据库


use music


* 查询数据库


show dbs 空库将不会显示


db.albums.insertOne({'title':'bey bey'})来插入一条后再看


* 查看当前使用的数据库


db/db.getName()


* 显示当前DB状态


db.stats()


* 查看当前DB版本


db.version()


* 查看当前DB的链接机器地址


db.getMongo()


* 删除数据库


db.dropDatabase()


#### Collection聚集集合操作




创建一个聚集集合


db.createCollection("collName", {size(集合大小): 20, capped(固定大小,可提高使用效率): true, max(最大值): 100});


db.collName.isCapped(); //判断集合是否为定容量


得到指定名称的聚集集合


db.getCollection("account");


得到当前db的所有聚集集合


db.getCollectionNames();


显示当前db所有聚集的状态


db.printCollectionStats();


### 添加、修改与删除集合数据


查看


db.users.find()


添加


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}]);


修改






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';




删除


db.users.remove({age: 32});符合条件全删
db.users.remove({age: 132},{justone:true});只删一条
db.users.remove({});删除所有document




查询修改删除




```
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
});
```
query 过滤条件 $gte大于


sort如果多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操作,-1位为降序


remove 若为true,被选中对象将在返回前被删除


update 一个 修改器对象


remove 创建新对象若查询结果为空






#### 聚集集合查询


查询所有记录




db.userInfo.find();


相当于:select* from userInfo;


查询去重后数据


db.userInfo.distinct("name");


相当于:select distict name from userInfo;


查询age = 22的记录


db.userInfo.find({"age": 22});


相当于: select * from userInfo where age = 22;


查询age > 22的记录


db.userInfo.find({age: {$gt: 22}});


相当于:select * from userInfo where age >22;


查询age < 22的记录


db.userInfo.find({age: {$lt: 22}});


相当于:select * from userInfo where age <22;




查询age >= 25的记录


db.userInfo.find({age: {$gte: 25}});


相当于:select * from userInfo where age >= 25;


查询age <= 25的记录


db.userInfo.find({age: {$lte: 25}});


查询age >= 23 并且 age <= 26


db.userInfo.find({age: {$gte: 23, $lte: 26}});


查询name中包含 mongo的数据


db.userInfo.find({name: /^mongo/});


//相当于%%
select * from userInfo where name like ‘%mongo%’;


查询name中以mongo开头的


db.userInfo.find({name: /^mongo/});


相当于select * from userInfo where name like ‘mongo%’;




查询指定列name、age数据


db.userInfo.find({}, {name: 1, age: 1});


相当于:select name, age from userInfo;


查询指定列name、age数据, age > 25


db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});


相当于:select name, age from userInfo where age >25;


按照年龄排序


升序:db.userInfo.find().sort({age: 1});


降序:db.userInfo.find().sort({age: -1});


查询name = zhangsan, age = 22的数据


db.userInfo.find({name: 'zhangsan', age: 22});


相当于:select * from userInfo where name = ‘zhangsan' and age = 
’22';


查询前5条数据


db.userInfo.find().limit(5);


相当于:select top 5 * from userInfo;






查询10条以后的数据


db.userInfo.find().skip(10);


相当于:select * from userInfo where id not in (
   select top 10 * from userInfo
);


查询在5-10之间的数据


db.userInfo.find().limit(10).skip(5);


or与 查询


db.userInfo.find({$or: [{age: 22}, {age: 25}]});


相当于:select * from userInfo where age = 22 or age = 25;


查询第一条数据


db.userInfo.findOne();


相当于:selecttop 1 * from userInfo;


db.userInfo.find().limit(1);


查询某个结果集的记录条数


db.userInfo.find({age: {$gte: 25}}).count();


相当于:select count(*) from userInfo where age >= 20;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值