整理一些MongoDB常用数据库命令

Posted 白瑕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整理一些MongoDB常用数据库命令相关的知识,希望对你有一定的参考价值。


前言


一、数据库操作

1.查询并显示当前存在的数据库

db是数据库英文"database"的首字母简写.
而"所有的数据库", 应当为复数加"s".

show dbs


2.切换并开始操作某数据库

值得一提的是, 在MongoDB中直接use不存在的数据库会默认创建, 比如这里test库并不存在, 但依然正常的执行了.

use 数据库名


数据库名不可加引号.


3.删除数据库

使用use切换到某个数据库后, 直接执行这一句将该库删除.

db.dropDatabase()

不要传参数.


二、集合操作

MongoDB中集合的概念, 就像是mysql中的"数据表".

1.创建一个集合


上图反例, 不要创建以中文命名的集合.


2.拿到所有集合名并显示

执行结果有几个集合名即说明有几个集合.

db.getCollectionNames()


不要传参数.


3.依据名称选取并显示某集合

示例翻了个小车, 不要用中文命名集合…

db.getCollection('xxx')


三、文档操作

1.向集合中存入一条记录

相当于SQL里横向的一行

db.集合名.insert([属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3'])  

2.向集合中存入多条记录

一次性存入多行,只需要在insert的数组中分为多个对象即可, 一个对象代表集合中的一行.

db.集合名.insert([属性名1:'属性值1',db.集合名.insert([属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3'])])


db.collection1.find()见下.


3.查询并展示某集合中的所有数据

db.集合名.find()


4.条件查询

其实主要是以正则表达式的形式来对查找条件进行规定的.
我准备了一些简单的案例在这段, 相信看完后你能够理解…

基本格式: db.数据库名.find(xxx)
条件查询:

语句释义
略.find(属性名:"属性值");查询带有这条数据的记录;
略.find(属性名:$gt:??)查询属性值比??大的属性所在的记录
略.find(属性名:$lt:??)查询属性值比??小的属性所在的记录
略.find(属性名:$gte:??)查询属性值大于等于??的属性所在的记录
略.find(属性名:$lte:??)查询属性值小于等于??的属性所在的记录
db.集合名.find(name:/??/)查询name属性值中含有"??"的数据所在的记录
db.集合名.find(name:/^??/)查询name属性值以"??"开头的所有记录
db.集合名.find(name:/??$/)查询name属性值以"??"结尾的所有记录

现在我写入了4条人物信息数据用于演示:


db.collection1.find(sex:'female',age:$gte:17, $lt:25,hobby:'sleep')


db.collection1.find(age:$gt:15, $lt:18)


db.collection1.find(name:/^i/, sex: /male/)


db.baoguo.find(sex:/^f/, age:$gte:17, $lt:27, hobby:/ee/)


db.collection1.find(name:/o$/, sex: /^fe/, hobby:/ep$/)


5.更新式存入

同样能实现插入数据, 其与insert()的区别是:
若新插入数据与旧数据的_id相同(即主键相同), insert() 不做操作直接插入新的记录, 而save() 则更改旧的记录为新记录.

db.集合名.save(属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3')

6.更新某条记录内的数据

选取 [满足某些条件的记录] 进行更新.
有两种更新方法, 一种是直接替换某数据为新的数据, 另一种是在旧数据基础上拼加新的数据.
$set
$inc

$set: 直接更新旧数据

//这是直接更新旧数据的写法;
db.集合名.update(name:25, $set:name:"io", false, true);
                   条件           修改为


值得一提的是, 在你选择$set这种方法后, 如果选择更新的数据是先前不具有的, 会直接添加而不是报错.
比如上图执行结束后在下图最后一条记录中新添加了"newData": "io".

这里如果$setnewData1的话, 先前的"one"会被替换为"io".
再比如:


$inc: 在旧数据基础上加新的数据, 全称increament

//这是在旧数据基础上加的写法;
> db.collection1.update(条件属性:'属性值',$inc:待修改属性: 待加值,false, true)
                            条件           修改为

现在我写入了4条人物信息数据用于演示:

我们来让io再小一岁:

db.collection1.update(name:'io',$inc:age: -1,false, true)
//寻找name为io的记录, 向其age属性加-1


注意这个方法只能往数字类型上拼接数字类型, 否则会报错.
向字符串值拼接数字和字符串:

向数字值拼接字符串:


7.查询并显示去重后的数据

去重查找, 如果有多条满足查找条件的记录,则仅显示每种找到的第一个.

db.集合名.distinct("数据名")


8.将记录进行排序

语句释义
db.集合名.find(查找条件).sort(age:1)将所有数据依据年龄升序排列
db.集合名.find(查找条件).sort(age:-1)将所有数据依据年龄降序排列


你也可以规定仅仅将哪些数据进行筛选排序.

db.collection1.find(name:/o/).sort(age:-1)


9.删除记录

删除单条记录,

 db.collection1.remove(属性名:属性值)


其删除条件也可以使用正则表达式来规定:


总结

操作MongoDB时记下的一点东西…
帮到你的话,我很高兴:)

以上是关于整理一些MongoDB常用数据库命令的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发-OC学习-常用功能代码片段整理

常用python日期日志获取内容循环的代码片段

MongoDB-JAVA-Driver 3.2版本常用代码全整理 - 增删改

MongoDB常用命令

Mongo DB命令简介

记一些 mongodb 常用命令