mongodb的安装和使用

本文介绍了MongoDB的安装步骤及基本操作指南,包括启动服务的不同方式、连接客户端、查看和切换数据库、增删查改等常用命令。通过实例演示了如何进行数据的插入、查询、更新和删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二十六、mongodb的安装和使用

命令行操作

启动:

Windows下和linux下有点区别:以下是linux下的操作

启动服务的几种方法:

启动服务1: mongod --dbpath ./data/db --logpath ./log/mongodb.log -logappend

可以将启动参数编写到mongo.cfg中:

Vi ./bin/mongo.cfg

#set location for data

dbpath=/home/hadoop/installed/mongodb-linux-x86_64-3.2.1/data/db

#set location for log

logpath=/home/hadoop/installed/mongodb-linux-x86_64-3.2.1/log/mongodb.log

#set other conf

启动服务2: mongod -f ./bin/mongo.cfg         或者使用-f/--config

启动服务3: ./bin/start_mongo.sh   (封装启动命令到shell脚本)

常见操作:

-mongo :连接到客户端

-db :查看当前所在的db

-use yourdb: 切换db,没有也会切换过去,但是是虚的,不会真正创建

-show dbs :显示所有的db,默认有一个local

-show collections :显示该db下的所有集合

常见操作(CRUD):

1-db.collection.insert()   注:collection是具体的自己的集合名,刚开始没有,都是是虚的,没有并不影响我们的使用,当有数据写入就会产生(存入数据是json格式)

> db

> show dbs

> show collections

> db.test.insert({name:'aidon',age:30,sex:'m'})

WriteResult({ "nInserted" : 1 })  写入1条数据成功

> show dbs  此时你会发现多咯一个你现在在的库

> show collections 此时你会发现多咯个test集合

> db.test.insert({name:'fj',facevalue:66}) 再插入一条数据,就能体现它的模式自由咯

WriteResult({ "nInserted" : 1 })

 

2-db.collection.find()

> db.test.find()   查询全部

{ "_id" : ObjectId("5981925a76082a1a8e58131b"), "name" : "aidon", "age" : 30, "sex" : "m" }

{ "_id" : ObjectId("598193b876082a1a8e58131c")    会发现多一个_id,该id可以指定,你不指定默认生成全集群唯一的标识。

> db.test.find({name:'fj'})  指定查询条件

{ "_id" : ObjectId("598193b876082a1a8e58131c"), "name" : "fj", "facevalue" : 66 }

 

 

3-db.collection.update()

> db.test.update({name:'fj'},{name:'fy'})   该操作需要两个参数,第一个是源,第二个是修改后的值。都是json格式

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })  1个匹配,0个插入,1个修改,注意:如果匹配不上将会被插入

> db.test.find()  更新完后插寻看看对不对

{ "_id" : ObjectId("5981925a76082a1a8e58131b"), "name" : "aidon", "age" : 30, "sex" : "m" }

{ "_id" : ObjectId("598193b876082a1a8e58131c"), "name" : "fy" }   发现是覆盖的样子?对,的确是重写咯,这也有其使用场景。但我就想更新某个值怎么办?

> db.test.update({name:'aidon'},{$set:{name:'aidon Li'}})   $set操作符,其后的json就是需要更改的

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.test.find()    再次查询试试,是否只改咯一个字段

{ "_id" : ObjectId("5981925a76082a1a8e58131b"), "name" : "aidon Li", "age" : 30, "sex" : "m" }

{ "_id" : ObjectId("598193b876082a1a8e58131c"), "name" : "fy" }

 

 

4-db.collection.remove()

> db.test.insert({name:'fj'})

WriteResult({ "nInserted" : 1 })

> db.test.remove({name:'fy'})  指定条件删除,删除所有是不指定条件吗?不是的,用drop

WriteResult({ "nRemoved" : 1 })

> db.test.find()  再次查询

{ "_id" : ObjectId("5981925a76082a1a8e58131b"), "name" : "aidon Li", "age" : 30, "sex" : "m" }

{ "_id" : ObjectId("598197c976082a1a8e58131d"), "name" : "fj" }

> db.test.remove()  删除所有会报错的

 

5、-db.collection.drop()

> db.test.drop()    删除整个集合的数据

True

 

这个操作很多,不同的版本还有些不一样,所以请参考官网中的doc->mongo shell。地址:

https://docs.mongodb.com/manual/mongo/     里面有curd操作的连接

· db.collection.insertOne()

· db.collection.insertMany()

· db.collection.updateOne(<filter>, <update>, <options>)

· db.collection.updateMany(<filter>, <update>, <options>)

· db.collection.replaceOne(<filter>, <replacement>, <options>)

· db.collection.find()

· db.collection.findOne()

· db.collection.deleteMany()

· db.collection.deleteOne()

特点:

1、库是虚的,只有当该库下有数据该库才能被真正创建

2、集合相当于以前关系数据库中的表,集合也是虚的,集合下没有数据时,该集合不会真正创建。

3、一切都是虚的,只有当底层的创建上来,上层才会被创建。

4、存储key-valuejson格式的数据

5、存储也是分布式的,可以容易水平扩展

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据东哥(Aidon)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值