mongodb数据库操作

本文详细介绍了如何在Ubuntu16.04上安装MongoDB 4.0.12,包括创建数据文件夹、设置权限、导入公钥、创建列表文件、安装软件包以及保持版本不变的步骤。同时,讲解了MongoDB的卸载方法。此外,文章还涵盖了MongoDB的启动问题、文档数据类型、Mongo shell的使用、文档的增删改查操作、shell命令、访问集合的特殊情况、save方法以及修改器的使用。文章深入浅出地阐述了MongoDB的基础操作,适合初学者参考。
摘要由CSDN通过智能技术生成

### 安装在Ubuntu16.04:


```bash
# 创建数据库文件夹,这个是默认存放数据的地方,但MongoDB不会自动创建
mkdir -p /data/db
# 增加权限
chown -R $USER:$USER /data/db
wget -qO - https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -  # 导入公钥
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list  # 为MongoDB创建列表文件
sudo apt-get update  # 重新加载本地数据包
sudo apt-get install -y mongodb-org=4.0.12 mongodb-org-server=4.0.12 mongodb-org-shell=4.0.12 mongodb-org-mongos=4.0.12 mongodb-org-tools=4.0.12  # 安装软件包
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections  # 保持目前的版本,防止自动更新
# 启动
sudo service mongodb start #或者
systemctl start mongodb
```


### 卸载


```bash
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
```


### 通过systemctl start mongodb 启动时的错误解决


报错如下:


Failed to start mongodb.service: Unit mongodb.service not found.


解决:


```bash
sudo nano /etc/systemd/system/mongdb.service  # 创建服务文件
```


```bash
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
# 制定需要执行的命令的位置,                                #  制定项目运行所需要的配置文件位置
[Install]
WantedBy=multi-user.target
```


- 按ctrl + x 保存退出
- systemctl  start mongodb
- 永久有效: systemctl enable mongodb


### 1、文档中值的数据类型


在mongodb中数据是以文档的形式存在的


1、每个文档相当于一条记录


2、多个文档组合在一起,就是集合,一个集合就相当于一张数据表


3、多个集合组合在一起,就是数据库,每个数据库就是一个文件夹


- Object ID: ⽂档ID
- String: 字符串, 最常⽤, 必须是有效的UTF-8
- Boolean: 存储⼀个布尔值, true或false
- Integer: 整数可以是32位或64位, 这取决于服务器
- Double: 存储浮点值
- Arrays: 数组或列表, 多个值存储到⼀个键
- Object: ⽤于嵌⼊式的⽂档, 即⼀个值为⼀个⽂档
- Null: 存储Null值
- Timestamp: 时间戳, 表示从1970-1-1到现在的总秒数
- Date: 存储当前⽇期或时间的UNIX时间格式


### 2、Mongo  shell


- 使用mongo命令自动启动shell,并连接数据库服务器,该shell能够解析JavaScript的语法
- 通过shell可以完成一些列的增删改查工作


### 3、文档的基本增删改查


- 增加:使用insert()函数,将要插入的数据放到集合中


  - 比如增加一个文档,首先先创建文档变量


    post = {"title": "my first mongo"}


  - 插入文档到blog集合中


    db.blog.insert(post)


  - 批量插入:同样适用inset方法,将你需要插入的文档全部存放到一个数组中


  - 当我们连接到服务器之后,**db**会自动指向正在使用的数据库,blog为集合名,没有会自动创建


- 查找:使用find()或者findOne()


  - find()默认显示20条数据


    db.blog.find()


  - findOne()只显示一条数据


    db.blog.findOne()


- 更新:使用**update()**方法, 该方法接收两个参数,第一个为需要修改的文档,第二个修改过的文档


  **update()方法除了接收前两个参数外,还可以接收另外两个参数,并且这两个参数都是布尔值**


  **例如:db.blog.update({"title": "My Blog Post"}, {"title": "My Blog Get"}, true, true)**


  **第三个参数表示upsert,能够保证操作的原子性,同时在没有查询到制定的集合情况下,会以查询条件和更新文档为基础新建一个文档,第四个参数默认是true,表示更新所有符合条件的集合,若改为false,则只更新第一个。**


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值