首页 代码 正文

Docker安装MongoDB

2024.12.13 代码 576

安装MongoDB

下载MongoDB镜像:docker pull mongo

创建并启动容器:docker run --name=mongo -p 27017:27017 -v D:\MongoDB\data:/data/db
-d mongo

Docker容器运行结束后,数据会丢失,这对MongoDB而言,是不可接受的,所以需要将容器中产生的数据保存到本地对应文件中。-v参数指定数据持久化路径。

基本操作

//  创建和切换数据库,数据库不存在则创建,否则切换到指定数据库
use test
// 当前数据库
db
// 查看所有数据库(数据库没有数据的不会显示出来)
show dbs

插入数据

MongoDB中没有直接创建表的命令,表名在插入数据时指定。

// 向user表插入一条数据
db.user.insert({
    "name": "zs",
    "age": 18
})
// 查询user表中数据
db.user.find()
// 可以使用pretty对查询结果进行格式化
db.user.find().pretty()

// 删除集合中所有数据,包括索引,删除速度快
db.user.drop()

// 批量插入数据
db.user.insert([{
    "name": "zs",
    "age": 18
}, {
    "name": "zs2",
    "age": 19
}, {
    "name": "zs3",
    "age": 20,
    "hobby": "code"
}])

// 
db.user.find({
    "age": 20,
    "name": "zs3"
}, {
    "_id": 0
})

db.collection.find(query, projection)

  • query(可选):该参数指定查询条件,是一个JSON对象,key一般为查询列名,value为查询匹配值
  • projection(可选):如果省略该参数,那么查询时返回文档中所有键值。该参数是一个JSON 对象,key为需要显示的列名,value为1显示或0不显示

更新数据

db.user.update({
    "name": "zs4"
}, {
    $set: {
        "age": 21
    }
})

进阶操作

范围操作符

  • 等于 :
  • 小于 lt,小于等于 lte
  • 大于 gt,大于等于 gte
  • 不等于 ne
db.user.find({
    "age": {
        $gte: 19
    }
})

AND操作符

find()方法可以传入多个key,每个key以逗号隔开。每个key之间是与的逻辑关系,即条件间默认关系就是AND。

db.user.find({
    "age": {
        $gte: 19
    },
    "name": "zs3"
})

OR操作符

关键字$or表示或逻辑关系。

db.user.find({
    $or: [
        {
            "age": {
                $lte: 19
            }
        },
        {
            "name": "zs3"
        }
    ]
})

AND操作符和OR操作符可以混合使用。

排序

db.user.find().sort({
    age:  - 1
})

1为升序,-1为降序。

聚合

db.user.insert({
    "name": "zs4",
    "age": 18
})

db.user.aggregate([
    {
        $group: 
        {
            _id: {
                age: '$age'
            },
            totalCount: {
                $sum: 1
            }
        }
    }
])
  1. 转载请保留原文链接:Docker安装MongoDB https://aboss.top/post/796/
  2. 本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
  3. 本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
  4. 本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
  5. 联系方式(#替换成@):mail#aboss.top

评论

热门搜索