目录
MongoDB使用
1.安装mongodb
MongoDB官网
关于安装的各种配置可参考该文章
安装MongoDB最全的文章
如果大家对于官网上的英文看不懂
可以观看MongoDB中文官网
2.认识mongodb命令
在使用monggodb命令时,我们必须
要知道进行操作的时形式都是json形式
2.1 增加与删除命令
1. 增加即插入(insert)
操作格式:
db.<集合的名称>.insertOne(<JSON对象>)
db.<集合的名称>.insertMany([<JSON1>,<JSON2>.....<JSON n>])
注意:如果插入时插入的集合没有,会自动创建
在同时插入多个值时需要用数组符号包裹
eg:
db.fruit.insertOne({name:'apple'})
db.fruit.insertMany([
{name:'apple'},
{name:'pear'},
{name:'banner'}
])
2.2寻找命令(find)
关于find:相当于Mysql的select
返回的为游标。
利用在查询的后面添加
pretty()可使结果呈文档形式
SQL | mongodb |
a=1 | {a:1} |
a<>1 | {a:{$ne:1} |
a>1 | {a:{$gt:1}} |
a>=1 | {a:{$gte:1}} |
a<1 | {a:{$lt:1}} |
a<=1 | {a:{lte:1}} |
- $lt:存在并小于
- $lte:存在并小于等于
- $gt:存在并大于
- $gte:存在并大于等于
- $ne:不存在或存在但不等于
- $in:存在并在指定的数组中
- $nin:不存在或不在指定的数组中
- $or:匹配多个条件只需一个符合集合
- $and:匹配多个条件全部符合
SQL | mongodb |
a=1 AND b=1 | {a:1,b;1}或{$and:[{a:1},{b;1}]} |
a=1 OR b=1 | {$or:[{a:1},{b;1}]} |
a IS NULL | {a:{$exists:false}} |
a IN (1,2,3) | {a:{$in:[1,2,3]}} |
关于find搜索子文档可采用f.s_f的形式
db.fruit.insert(
{
name:'ztl',
form:{city:'beijing'
}
})
这个时候可采用
db.fruit.find({'form':{city:'beijing'}}).pretty()
采用下面的会报错
db.fruit.find({"form.city","beijing"}).pretty()
find命令用于搜索数组中元素
假设有如下数据
db.fruit.insert([
{name:'ztl1',color:['red','green']},
{name:'ztl2',color:['pink','red']}
])
那么我们应该怎么查询呢?
db.fruit.find(
{$or:[{color:'red'},{color:'pink'}]}
).pretty()
我们已经使用过利用天骄pretty()
使查询结果有更好的显示效果。
我们也可以对查询的结果进行
限制比如:
_id:0即代表不返回_id字段其他也如这
2.3删除命令(remove)
需要注意的是在使用remove
命令时比如指定条件,否则会报错
eg:
db.fruit.remove({name:'apple'})//删除a为apple的记录
db.fruit.remove({})//删除所有的记录
db.fruit.remove()//报错
2.4更新文档(update)
使用形式:db.<集合>.update(<查询条件>,<更新字段>)
使用updateOne更新文档,不论有多少个查询条件
只更新第一条查询条件。
使用update有几条查询条件,就修改文档多少条
使用updateOne与update必须携带以下的更新条件
1.$set/$unset
2.$push/$pushAll/$pop
3.$pull/$pullAll
4.$addToSet
否则会报错
$push | 增加一个对象到数组底部 |
$pushAll | 增加多个对象到数组的底部 |
$pop | 从数组的底部删除一个对象 |
$pullAll | 如果匹配任意的值,从数组删除对应的对象 |
.$pull | 如果匹配指定的值,从数组删除对应的对象 |
$addToSet | 如果不存在增加一个对象到数组底部 |
比如有下面的数据
db.fruit.insert([
{name:'ztl1'},
{name:'ztl'},
{name:'ztl3'}
])
可使用以下命令(只更新一个数据)
db.fruit.updateOne({name:'ztl'},{$set:{from:'xa'}})
3.集合与数组操作
3.1集合操作
创建集合:
db.createCollection(name, options)
或
db.fruit.insert({})
其中name为集合的名字
option:可选参数, 指定有关内存大小及索引的选项
删除集合:
db.collection.drop()
如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。
查看集合:
show collections
3.2数据库操作
创建数据库:
use DATABASE_NAME(数据库名称)
如果不存在,则会自动创建
否则切换到指定数据库
删除数据库:
db.dropDatabase()
删除当前数据库,默认为 test,
你可以使用 db 命令查看当前数据库名。
查看数据库:
show dbs
好了这次的文章就到这了
如果觉得还不错的话,帮忙点个关注吧
希望能给博主点赞????,评论????,收藏????三连一波