其实一直想整理下我常使用的MongoDB数据库的一些操作命令,终于有时间了~
MongoDB是一种开源的,免费的非关系型数据库(NoSql),不存在表、记录等概念,与通常的关系型数据库有些差异:
-
MongoDB里的集合可类比成关系数据库中的表,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。集合存储在数据库中。
- MongoDB里的文档可类比成关系型数据库中表中的字段,文档主要存储在集合中,mongodb将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
以下是一些常用命令
一、数据库
1、查看所有数据库:show dbs
2、切换数据库:use DATABASE_NAME # 如果数据库不存在,则创建数据库
3、删除数据库:db.dropDatebase()
二、集合
1、查看所有的集合:show collections 或者show tables
2、创建mongotest集合:
a、 db.creatCollection("mongotest") # 创建集合
b、 db.mycollections.insert({"name":"嗯哼~"}) # 在MongoDB中,当你插入一些文档时,MongoDB会自动创建集合
三、文档
1、插入文档:db.mycollections.insert() 或者 db.mymycollections.save()
# 如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
例:
2、查找文档:db.mycollections.find()
db.mycollections.find().pretty() # 查找全部文档,按格式输出
db.mycollections.findOne() # findOne是按照_id正序排列,没有查询条件,查找第一个被插入的数据
例:
其他相关查询条件语法如下:
- 小于:语法为 {<key>:{$lt:<value>}},例 :db.mycollections.find({"age":{$lt:19}})
- 小于或等于:{<key>:{$lte:<value>}},例 :db.mycollections.find({"age":{$lte:19}})
- 大于:{<key>:{$gt:<value>}},例 :db.mycollections.find({"age":{$gt:19}})
- 大于等于:{<key>:{$gte:<value>}},例 :db.mycollections.find({"age":{$gte:19}})
- 不等于:{<key>:{$ne:<value>}} ,例 :db.mycollections.find({"age":{$ne:18}})
3、更新命令:db.mycollections.update()
例:将上面王红年龄从18岁改为19岁,操作命令为:db.mycollections.update({"name" : "王红"},{$set:{"age":"19"}})
![](https://i-blog.csdnimg.cn/blog_migrate/6b155215f740a9a86714be62226c1f60.png)
3、插入多个姓名为“张三”的人,删除找到的前2条“张三”,操作命令为:
db.mycollections.remove({"_id" : {$in: [ObjectId("5b86b20c873007ee4d98c1e6"), ObjectId("5b86b20e873007ee4d98c1e7")]}})
![](https://i-blog.csdnimg.cn/blog_migrate/d189b9b064f8943bca69939438085b7d.png)
四、其他命令
1、查询过滤
db.mycollections.find({"name":"张三"},{"age":1,_id:0}) # 1表示显示name,0表示不显示_id.
2、limit()
如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
db.mycollectons.find().limit(2) # 只显示2个文档
3、skip()