MongoDB简单命令及操作

现在正在学习NoSQL这门课程,上节课已经安装好mongodb,现在记录一下MongoDB的简单命令。

1、创建数据库

> use 数据库表名
> db

此时可以进行查看是否创建成功

> show dbs

发现我们刚才创建的asd并不在数据库的列表中,如果要显示它,我们需要向asd数据库插入一些数据,操作如下:

>db.asd.insert({"name":"ASD"})

此刻我们再来用命令show dbs 就可以看到我们刚才创建的asd数据库了,具体操作结果如下:
MongoDB简单命令及操作_第1张图片
这样子就创建好一个数据库了。

2、删除数据库

我们先查看一下所有的数据库

>show dbs

然后我们进入asd数据库

> use asd

然后就可以进行删除

> db.dropDatabase()

执行完之后我们在用命令show dbs 检查是否删除成功,效果图如下:
MongoDB简单命令及操作_第2张图片

3、创建集合

在test数据库中创建asd集合

> use test
> db.createCollection("asd")

使用show collections 命令来查看是否创建集合成功

> show collections

具体效果如下:
MongoDB简单命令及操作_第3张图片

4、删除集合

在数据库test中,查看已存在的集合

> use test
> show collections

接着对你将要删除的集合进行操作,这里删除asd集合

>db.asd.drop()

我的运行结果如下:
MongoDB简单命令及操作_第4张图片

5、插入文档(document)

语法格式

> db.COLLECTION_NAME.insert(document)

如:

> db.student.insert({"sno":"201601","sex":"1","age":"20","name":"小张"})
> db.student.insert({"sno":"201602","sex":"1","age":"26","name":"小王"})
> db.student.insert({"sno":"201603","sex":"2","age":"23","name":"小红"})
> db.student.insert({"sno":"201604","sex":"1","age":"21","name":"小张儿"})
> db.student.insert({"sno":"201605","sex":"2","age":"17","name":"小玉儿"})

具体效果如下:
MongoDB简单命令及操作_第5张图片

6、修改文档(document)

具体示例:

> db.student.update({"sno":201604},{$set:{"name":"张三"}})

修改结束之后,在使用find()函数检验是否修改成功

> db.student.find({"sno":"201604"}).pretty()

运行结果如下图:
MongoDB简单命令及操作_第6张图片

7、删除文档(document)

删除分为两种,一种是按条件删除,一种是全部删除,语法如下:

按条件删除
db.COLLECTION_NAME.remove(
   ,
   {
     justOne: ,
     writeConcern: 
   }
)

删除所有文档
db.COLLECTION_NAME.remove({})
db.COLLECTION_NAME.deleteMany({})

示例如下:
按条件删除:

> db.student.remove({"sno":"201605"})

结果如下:
MongoDB简单命令及操作_第7张图片
这里就不示范删除所有文档了。

8、查询文档(document)

语法格式

db.COLLECTION_NAME.find(query, projection)

示例:
(1)按条件查询

> db.student.find({"sno":"201604"})

这里写图片描述
(2) 查询姓小的

> db.student.find({"name":/^小/})

MongoDB简单命令及操作_第8张图片
(3)查询age大于22岁的

> db.student.find({"age":{$gt:"22"}})

结果如下:
MongoDB简单命令及操作_第9张图片

(4)查询age在20-25之间的

db.student.find({"age":{$gte:"20",$lt:"25"}})

MongoDB简单命令及操作_第10张图片
(5) 查询女生或者年龄小于25的

db.student.find({$or:[{"sex":2},{"age":{$lt:"25"}}]})

MongoDB简单命令及操作_第11张图片

9、排序

语法格式
db.COLLECTION_NAME.find().sort({key1:1, key2:1})
示例:

> db.student.find({}).sort({"sex":-1,"age":1})

使用 1 表示升序,-1 表示降序
MongoDB简单命令及操作_第12张图片

10、修改集合名字

> db.lsl.renameCollection("student")

表明将集合lsl名字重命名为student

11、限制记录数

语法格式
db.COLLECTION_NAME.find().limit(NUMBER)
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
使用 limit() 方法读取指定数量的数据,还可以使用 skip() 方法来跳过指定数量的数据
如下图:
MongoDB简单命令及操作_第13张图片

12、聚合

> db.student.aggregate([{$group:{"_id":"$sex","result":{$sum:1}}}])

在这里插入图片描述

13、_id索引

> db.student.getIndexes()

MongoDB简单命令及操作_第14张图片

14、创建索引

(1)给集合person 的name 字段创建索引

> db.person.createIndex({"name":1})

MongoDB简单命令及操作_第15张图片
(2)给集合asdperson的name字段创建索引,并指定索引的名称为idx_name

> db.person.createIndex({"name":1},{"name":"idx_name"})

MongoDB简单命令及操作_第16张图片

(3)给集合aperson的name和age字段创建复合索引

> db.person.createIndex({"name":1,"age":1})

MongoDB简单命令及操作_第17张图片

15、地理位置索引之$near的用法

语法
db.COLLECTION_NAME.find({
‘FIELD_NAME’ : {
$near:{
$geometry:{
type: “Point”,
coordinates: [ , ]
},
$maxDistance: ,
$minDistance:
}
}
})
示例如下:
(1)先对集合places插入5条测试数据

> db.palces.insert({'loc':[106.711770,26.588760],'name':'中华北路星力折扣超市'})

> db.places.insert({'loc':[106.710970,26.570140],'name':'人民广场沃尔玛'})

> db.places.insert({'loc':[106.711290,26.599430],'name':'盐务街北京华联'})

> db.places.insert({'loc':[106.714330,26.580970],'name':'富水北路北京华联'})

> db.places.insert({'loc':[106.705770,26.581270],'name':'瑞金中路红华便利'})

(2)创建索引

> db.places.ensureIndex({'loc':'2dsphere'})

(3)查询云岩广场[106.711836,26.588594]附近1000米范围的点

> db.places.find({'loc':{$near:{$geometry:{type:"Point",coordinates:[106.711836,26.588594]},$maxDistance:1000}}})

MongoDB简单命令及操作_第18张图片

16、全文检索

(1)在集合demo中插入3条数据

> db.demo.insert({"info":"Robots are superior to humans"})
> db.demo.insert({"info":"Humans are greate"})
> db.demo.insert({"info":"Robots are only smart machine"})

MongoDB简单命令及操作_第19张图片
(2)给集合demo创建全文检索

> db.demo.createIndex({"info":"text"})

MongoDB简单命令及操作_第20张图片

(3.1)检索包含Robots的文档

> db.demo.find({$text:{$search:"Robots"}})

在这里插入图片描述

(3.2)检索包含Robots或Humans的文档

> db.demo.find({$text:{$search:"Robots Humans"}})

MongoDB简单命令及操作_第21张图片

(3.3)检索包含Robots但不包含Humans的文档

> db.demo.find({$text:{$search:"Robots -Humans"}})

在这里插入图片描述

(3.4)检索词组"Robots are"

> db.demo.find({$text:{$search:'"Robots are"'}})

在这里插入图片描述
(3.5)检索并对结果打分

db.demo.find({$text:{$search:"Robots"}},{"score":{"$meta":"textScore"}})

MongoDB简单命令及操作_第22张图片

17、用户认证

(1.1)创建用户

> db.createUser( 
  { 
    user: "testadmin", 
    pwd: "2012", 
    roles: [ { role: "readWrite", db: "test" } ] 
  } )

创建结果如下:
MongoDB简单命令及操作_第23张图片

(1.2)创建用户结束后,需要重新启动mongodb服务,开启认证

> mongod --dbpath D:\Software\mongo\data\db --auth

(1.3)

> use test
> db.auth('testadmin','2012')

结果如下:
MongoDB简单命令及操作_第24张图片
然后就可以进行操作了。
(2) 修改用户权限

> db.updateUser("testadmin",
	{roles:[{role:"read",db:"test"}]
})

(3)修改用户密码

> db.changeUserPassword("testadmin","2018")

效果如下('2012’是原密码,而’2018’是新密码):
MongoDB简单命令及操作_第25张图片

18、数据备份

> mongodump -h localhost --port 27017 -d test -c place -o D:\backup -u testadmin -p 2018 --authenticationDatabase test

你可能感兴趣的:(学习,MongoDB,NoSQL)