更好的阅读体验:https://www.wolai.com/shNyWgzza49EytaDHnr1j4
环境
实验内容
安装mongodb
数据库操作
创建并操控数据库
删除数据库
集合操作
文档的插入,更新与删除操作
文档插入
文档更新
文档删除
文档查询
ubuntu18.04
服务器端
apt install mongodb
安装好后的配置文件在/etc/mongodb.conf
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xXVFWsLZ-1652497177753)(image/image__pNbi7RIJL.png)]
日志文件:
/var/log/mongodb/mongodb.log
数据文件在:
/var/lib/mongodb
通过日志文件可以查看到mongodb是否已经运行和运行的端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yPHmJI47-1652497177755)(image/image_lF61VsxhxP.png)]
停止mongodb
systemctl stop mongodb
开启mongodb
systemctl start mongodb
进入数据库操作界面
mongo shell
在操作界面使用help可以查看到帮助命令
help
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vTRMuWv1-1652497177756)(image/image_GvUEM7mmPp.png)]
创建一个test数据库,并切换到此数据库
(用官网的话就是:To switch databases, type use
. For example, to switch to the examples
database, You do not need to create the database before you switch. MongoDB creates the database when you first store data in that database (such as create the first collection in the database).)
use test
使用命令db查看当前所在数据库
db
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yVTzO79-1652497177756)(image/image_3kK0AIuBqF.png)]
db.dropDatabase()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLdcAKDB-1652497177757)(image/image_tPHan6N58f.png)]
创建集合
OPTION为可选选项
db.createCollection(“COLLECTION_NAME”, [OPTION])
创建一个集合
db.createCollection(“firstCollection”)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IuFAWjar-1652497177757)(image/image_8XhCABfHLa.png)]
删除集合
db.COLLECTION_NAME.drop()
删除一个集合
db.firstCollection.drop()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OvYfk1x8-1652497177758)(image/image_a00lgoDs5-.png)]
具体语法:
db.COLLECTION_NAME.insert(document)
或
db.COLLECTION_NAME.save(document)
多文档插入(文档数组)
db.COLLECTION_NAME.insertMany([document1,document2,…])
插入的文档内容
{"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","age":"20","phone":"18807141995","createdatetime":new Date(),"likenum":NumberInt(10),"state":null}
db.firstCollection.insert({"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","age":"20","phone":"18807141995","createdatetime":new Date(),"likenum":NumberInt(10),"state":null})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-drEUXJHi-1652497177758)(image/image_fxadMa6zEx.png)]
查看集合内的内容
db.COLLECTION_NAME.find()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQaN9PuQ-1652497177759)(image/image_V6J_8sOqht.png)]
插入多个文档
文档内容:
{"_id":"1","articleid":"100001","content":"清晨,我们不该把时间浪费在手机上,健康很重要,喝一杯温水,幸福你我他。","userid":"1002","nickname":"相忘于江湖","age":"25","phone":{"homePhone":"82174911","mobilePhone":"13065840128"},"createdatetime":new Date("2020-01-02 09:08:15"),"likenum":NumberInt(1000),"state":"1"},
{"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1003","nickname":"伊人憔悴","age":"22","phone":"13442031624","createdatetime":new Date("2020-01-02 10: 20: 40"),"likenum":NumberInt(888),"state":"1"},
{"_id":"3","articleid":"100001","content":"夏天和冬天,我都喝凉开水","userid":"1004","nickname":"杰克船长","age":"28","phone":"13937163334","createdatetime":new Date("2020-01-02 14:56:09"),"1ikenum":NumberInt(666),"state":nu11},
{"_id":"4","articleid":"100001","content":"专家说不能空腹喝冰水,影响健康","userid":"1005","nickname":"罗密欧","age":"18","phone":"15813134403","createdatetime":new Date("2020-01-03 11:26:29"),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不要喝,因为烫嘴","userid":"1005","nickname":"罗密欧","age":"18","phone":"15813134403","createdatetime":new Date("2020-01-03 15:10;37"),"likenum":NumberInt(3000),"state":"1"},
{"_id":"6","articleid":"100001","content":"喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升","userid":"1006","nickname":"爱德华","age":"30","phone":{"homePhone":"62771541","mobilePhone":"13262984142"},
"createdatetime":new Date("2020-01-03 15:10:37"),"likenum":NumberInt(3000),"state":"1"}
插入操作
db.firstCollection.insertMany([
{"_id":"1","articleid":"100001","content":"清晨,我们不该把时间浪费在手机上,健康很重要,喝一杯温水,幸福你我他。","userid":"1002","nickname":"相忘于江湖","age":"25","phone":{"homePhone":"82174911","mobilePhone":"13065840128"},"createdatetime":new Date("2020-01-02 09:08:15"),"likenum":NumberInt(1000),"state":"1"},
{"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1003","nickname":"伊人憔悴","age":"22","phone":"13442031624","createdatetime":new Date("2020-01-02 10: 20: 40"),"likenum":NumberInt(888),"state":"1"},
{"_id":"3","articleid":"100001","content":"夏天和冬天,我都喝凉开水","userid":"1004","nickname":"杰克船长","age":"28","phone":"13937163334","createdatetime":new Date("2020-01-02 14:56:09"),"1ikenum":NumberInt(666),"state":nu11},
{"_id":"4","articleid":"100001","content":"专家说不能空腹喝冰水,影响健康","userid":"1005","nickname":"罗密欧","age":"18","phone":"15813134403","createdatetime":new Date("2020-01-03 11:26:29"),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不要喝,因为烫嘴","userid":"1005","nickname":"罗密欧","age":"18","phone":"15813134403","createdatetime":new Date("2020-01-03 15:10;37"),"likenum":NumberInt(3000),"state":"1"},
{"_id":"6","articleid":"100001","content":"喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升","userid":"1006","nickname":"爱德华","age":"30","phone":{"homePhone":"62771541","mobilePhone":"13262984142"},
"createdatetime":new Date("2020-01-03 15:10:37"),"likenum":NumberInt(3000),"state":"1"}
])
具体语法:
db.COLLECTION_NAME.update(criteria, objNew, upsert, multi)
criteria: 该参数表示更新的查询条件
objNew: 该参数表示更新的对象和一些更新的操作符等,可以理解为sql更新查询中的set后面的条件
upsert:在不存在更新文档的情况下,用于判断是否插入objNew,true表示插入,反之false
multi:默认为false,只更新找到的第一个文档,true则查出的多个文档都进行更新
db.firstCollection.update({"content":"喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升"},{$set:{"content":"喝水增加了尿量,能使有害物质及时排出体内"}})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FhVKsML4-1652497177760)(image/image_29Diip4WqR.png)]
删除单个文档
db.COLLECTION_NAME.remove(
{
justOne:,
writeConcern:
}
)
删除所有的文档
db.COLLECTION_NAME.remove()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhbYm2Wd-1652497177761)(image/image_j9Ixsp-9Ew.png)]
查询所有文档
db.COLLECTION_NAME.find()
查询所有文档,查询结果以易读的方式进行展示
db.COLLECTION_NAME.find().pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fn4xq8b4-1652497177761)(image/image_aKfEcEgpdH.png)]
按条件查询
与操作符
db.COLLECTION_NAME.find({$and:[{
: , : }]}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IUFGLOx1-1652497177761)(image/image_VYKIxW0LcK.png)]
或操作符
db.COLLECTION_NAME.find({$or:[{
: },{ : }]})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-596OzAQN-1652497177762)(image/image_hSZluBsiL3.png)]
大于操作符
db.COLLECTION_NAME.find({
: {$gt: }}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VNi0qgl8-1652497177763)(image/image_B1N2fuemWk.png)]
小于操作符
db.COLLECTION_NAME.find({
: {$lt: }}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVD5VbO3-1652497177763)(image/image_N_gdBpbzi9.png)]
大于等于操作符
db.COLLECTION_NAME.find({
: {$gte: }}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9fDh7AJ-1652497177763)(image/image_bHwlZy8q0G.png)]
小于等于操作符
db.COLLECTION_NAME.find({
: {$lte: }}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nP8q7qQo-1652497177764)(image/image_5wSYI2tT4e.png)]
不等于操作符
db.COLLECTION_NAME.find({
: {$ne: }}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uwq55R2I-1652497177764)(image/image_0YRJhaZDoB.png)]
包含操作符
db.COLLECTION_NAME.find({
: {$in:[ : ]}}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2CktxRAW-1652497177765)(image/image_-dUqshtYt1.png)]
不包含操作符
db.COLLECTION_NAME.find({
: {$nin:[ : ]}}).pretty()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivilryWm-1652497177765)(image/image_gW-1rVyZ7q.png)]
按特定类型进行查询
null类型查询,用于查询集合中字段值为null的文档
db.COLLECTION_NAME.find({:null}).pretty()
正则表达式查询,用于查询集合中符合某个规则的文档
db.COLLECTION_NAME.find({:\正则表达式\}).pretty()
嵌套文档匹配查询
db.COLLECTION_NAME.find({:{:,:}}).pretty()
嵌套文档查询之点查询
db.COLLECTION_NAME.find({.:}).pretty()
更好的阅读体验:
https://www.wolai.com/shNyWgzza49EytaDHnr1j4