MongoDB数据库常用操作

1. MongoDB数据库使用

1. 开启mongodb 服务;

要管理数据库,必须先开启服务,开启服务使用 mongod --dbpath c:\mongodb,"c:\mongodb"为当前自己的数据库所在路径。

2. 管理 mongodb 数据库;

在新的 cmd 窗口中输入 mongo

3. 查看所有数据库列表 show dbs;

4. 清屏 cls;

2. MongoDB数据库的创建与删除

1. 创建、使用数据库;

use student

如果之前没有这个数据库,当前为创建一个新的数据库,那么必须插入一条数据,才能保证数据库创建成功。

数据库中不能直接插入数据,只能往集合(collections)中插入数据。

不需要专门创建集合,只需要声明集合并插入数据就会创建成功(以下示例均已user集合为例)。

db.user.insert({"name":"augus"});

系统发现 user 是一个陌生的集合名字,所以就自动创建了。

2. 显示当前数据库中的数据集合(mysql 中叫表);

show collections

3. 删除当前所在的数据库;

db.dropDatabase()

4. 删除指定的集合(当前为user集合);

db.user.drop()

3. MongoDB数据库插入数据

db.user.insert({"name":"yuki"});

4. MongoDB数据库查找数据

1. 查询所有记录;

db.user.find();

类似 SELECT* FROM user;

2. 查询当前集合中的某列去重后的数据;

db.user.distinct("name");

以上会过滤掉 name 中的相同数据

类似 SELECT  DISTINCT name  FROM user;

3. 查询 age = 22 的记录;

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

类似  SELECT* FROM user WHERE age =22;

4. 查询 age > 22 的记录;

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

类似 SELECT* FROM user WHERE age >22;

5. 查询 age < 22 的记录;

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

类似 SELECT* FROM user WHERE age <22;

6. 查询 age >= 25 的记录;

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

类似 SELECT* FROM user WHERE age >= 25;

7. 查询 age <= 25 的记录;

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

类似 SELECT* FROM user WHERE age <= 25;

8. 查询 age >= 23 并且 age <= 26;

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

类似 SELECT* FROM user WHERE age >= 25 AND age<=26;

9. 查询 name 中包含 mongo 的数据,多用于模糊查询搜索;

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

类似 SELECT* FROM user WHERE name LIKE '%mongo%';

10. 查询 name 中以 mongo 开头的数据;

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

类似 SELECT* FROM user WHERE name LIKE 'mongo%';

11. 查询指定列 name、age 数据;

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

类似 SELECT name, age FROM user;

name 也可以用 true 或 false,ture 的情况下与name:1 效果一样,如果用 false 就 是排除 name,显示其它列的信息。

12. 查询指定列 name、age 数据, 并且age > 25;

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

类似 SELECT name, age FROM user WHERE age >25;

13. 按照列排序 1 升序 -1 降序;

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

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

14. 查询 name = zhangsan, age = 22 的数据;

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

类似 SELECT * FROM user WHERE name = 'zhangsan' AND age = '22';

15. 查询前 5 条数据;

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

类似 SELECT TOP 5 * FROM user;

16. 查询 10 条以后的数据;

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

类似SELECT * FROM user WHERE id NOT IN ( SELECT TOP 10 * FROM user );

17. 查询在 5-10 之间的数据;

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

可用于分页,limit 是页大小,skip 是第几页乘以页大小的值

类似SELECT * FROM user LIMIT 5,5

18. OR 查询;

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

类似SELECT * FROM user WHERE age = 22 OR age = 25;

19. findOne 查询第一条数据;

db.user.findOne();

类似 SELECT TOP 1 * FROM user;

类似 db.user.find().limit(1);

20. 查询某个结果集的记录条数,用于统计数量;

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

类似 SELECT COUNT(*) FROM user WHERE age >= 25;

如果要返回限制之后的记录数量,要使用 count(true)或者 count(非 0)

db.user.find().skip(10).limit(5).count(true);

5. MongoDB数据库更新数据

1. 查找名字为小明的,把年龄更改为 16 岁;

db.user.update({"name":"小明"},{$set:{"age":16}});

2. 查找英语成绩为 70的人,把年龄更改为 33 岁;

db.user.update({"score.english":70},{$set:{"age":33}});

3. 查找所有性别为男的用户把年龄都改为 33 岁;

db.user.update({"sex":"男"},{$set:{"age":33}},{multi: true});

4. 查找name为小明的用户的信息进行完整替换,注意没有$set了;

db.user.update({"name":"小明"},{"name":"大明","age":16});

5. 查找name为Lisi的用户,将其年龄增加50岁;

db.user.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);

类似UPDATE user SET age = age + 50 WHERE name = 'Lisi';

6. 查找name为Lisi的用户,将其年龄增加50岁,姓名改为Wangwu;

db.user.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'Wangwu'}}, false, true);

类似update users set age = age + 50, name = 'Wangwu' where name = 'Lisi';

6. MongoDB数据库删除数据

1. 删除年龄为32的所有用户

db.user.remove({age: 32});

2. 删除年龄为32的一个用户

db.user.remove( { "age": "32" }, { justOne: true } )

  • 20
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aiguangyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值