欢迎来到站长教程网!

MongoDB

当前位置:主页 > 数据库 > MongoDB >

MongoDB Shell 命令实例总结【进阶篇】

时间:2020-06-08|栏目:MongoDB|点击:

本文实例讲述了MongoDB Shell 命令。分享给大家供大家参考,具体如下:

原始文件请到我的github上去下载:https://github.com/yangqingxian/mongodb

这里先讲几件事:

1、这是第三次修改这篇文章了,也是第一次正真意义上的使用 github 来控制版本,想想还是有点小激动的:)
2、其中的内容结构与 mongodb基础命令是一致的,只不过添加了很多内容进去,适用于想进一步学习mongodb数据库的人
3、我其实也是菜鸟,所以我会用很白目的语言来解释其中的内容,如果你也跟我一样,那就两只鸟一起飞吧
4、接下来的内容均是我对《MongoDB大数据权威指南(第2版)》的摘记
5、其中的命令例子并没有事先创建好数据库、集合,都是要用到的时候临时写的,注意理解

mongodb数据库结构与传统关系型数据库的比较,便于理解接下来的内容

数据库->集合->文档
数据库->表  ->列

--------------------数据库内容------------------

查看所有数据库

show dbs

删除数据库

db.dropDatebase()

--------------------集合内容--------------------

创建集合

db.createCollection()

查看所有集合\表

show collections
show tables

选定某一集合

use db_name

查看集合的信息

db.stats()

删除一个集合,但是需要先指定一个数据库,即先执行 use db_name

db.dropDatabase()

修改集合的名称

db.collection_name.renameCollection('new_name')

----------------------文档内容---------------------

插入数据

db.collection_name.insert(document)
db.collection_name.save(document)

查询数据多条数据

db.collection_name.find()

1、可以指定返回的内容

参数解释

db.collection_name.find(
{query_term:value},
return_key_name:1}
)

a find()函数的第一个参数是查询条件,即匹配该内容的文档都会被筛选出来,如果没有查询条件,则输入{},不可以为空
b find()函数的第二个参数是指定返回的内容,例如一个student的集合中的一个xiaoming文档中包含多条内容,姓名、学生号、家庭住址等,现在我只想看姓名,不想查询的时候返回xiaoming文档的全部内容,就可以使用这种'键名:1'的形式,后面的1表示筛选出该内容并正序输出,0表示筛选出除了该内容的其余部分,-1表示逆序跟1一样的结果
c 可以返回多条记录,这里只是举个例子,还是拿ixaoming的例子

{
'name':1,
'student_id':1
}

这样就返回了两个信息,一个name,一个student_id

2、查询嵌套信息

结合二维数组理解下面的这个信息

{
'name':'yang',
'sex':'man',
'skill':[
{'php':1},
{'mongodb':4},
{'redis':5}
],
'favorite_food':'meat'
}

其中如果使用skill来作为find()的查询条件的话,千万别写成这样

---错误例子---

db.self.find({'skill':[{'php':1}]})

这样是查不到的,因为这样mongodb会将{'skill':[{'php':1}]}解析成skill数组下只包含'php':1这一条记录的内容,上面的例子明显不符合这一要求,所以查询不到

---正确的例子---

db.self.find({'skill.php':1})

这里使用了 . 告诉mongodb数据库去匹配skill数组下php为1的内容,重点在于skill下是否有'php':1这一条记录

---正确例子2---

如果一定要使用上面的错误例子的方式查询数据,可以使用$elemMatch参数,注意该参数使用的位置

db.self.find({
'skill':{$elemMatch:
{'php':1}
}
})

这里的$elemMatch是作为条件操作符来使用的

查询单条数据

db.collection_name.findOne()

 

skip 跳过查询的最开始的数量,limit,限制返回数量,sort,当 x:1 表示正序,x:-1 表示逆序

db.collection_name.find().skip(Number).limit(Number).sort({x:1})

计算符合查询条件的文档的数量

db.collection_name.find().count()

count()函数默认情况下会忽略skip()或limit()函数,例如假设student集合中有4个文档,下面的三条语句将显示不同的结果

db.student.find().limit(1).count() 结果为4,count忽略了limit(1)的条件

db.student.find().limit(1).count(true) 结果为1,为count()传入参数true

获取结果的唯一值

db.collection_name.distinct('key_name')

上一篇:MongoDB中的加减乘除运算详解

栏    目:MongoDB

下一篇:没有了

本文标题:MongoDB Shell 命令实例总结【进阶篇】

本文地址:http://www.jh-floor.com/shujuku/MongoDB/125623.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号