Docker安装MongoDB

159次阅读
没有评论

共计 1264 个字符,预计需要花费 4 分钟才能阅读完成。

安装 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
三毛笔记
版权声明:本站原创文章,由 三毛笔记 于2024-12-13发表,共计1264字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)