MongoDB学习笔记(Centos7)

一、下载MongoDB

        1、官网地址:MongoDB Community Download | MongoDB

        2、复制压缩包下载链接

         3、在Linux中使用wget下载压缩包

                wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.0-rc12.tgz

          4、解压mongodb压缩包

tar -zxvf mongodb-linux-x86_64-rhel70-5.0.9.tgz

            5、将解压文件移动到目录 /usr/local/mongodb下

mv mongodb-linux-x86_64-rhel70-5.0.9 /usr/local/mongodb

              6、新建几个目录,分别用来存储数据和日志

# 数据存储目录
mkdir -p /usr/local/mongodb/single/data/db
# 日志存储目录
mkdir -p /usr/local/mongodb/single/log

              7、新建并修改配置文件

vi /usr/lcoal/mongodb/single/mongod.conf
systemLog:
  # MongoDB发送所有日志文件输出到指定目标文件
  destination: file
  # mongod或者mongos应向其发送所有诊断日志记录信息到指定文件
  path: "/usr/local/mongodb/single/log/mongod.log"
  # 当mongos或者mongod实例重启时,mongos或者mongod会将新条目追加到现有日志的结尾
  logAppend: true
storage:
  # mongod实例存储其数据的目录。storage.dbPath 设置仅限于mongod
  dbPath: "/usr/local/mongodb/single/data/db"
  journal:
    # 启用或者禁用持久性日志以确保数据文件保持有效和可恢复
    enabled: true
processManagement:
  # 启用在后台运行mongos或者mongod进行的守护进程模式
  fork: true
net:
  # 服务实例绑定的IP,默认是localhost
  bindIp: localhost,192.168.2.128
  #绑定端口,默认是27017
  port: 27017

              8、启动MongoDB服务

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/single/mongod.conf

二、MongoDB数据库创建及使用

        1、连接mongodb数据库,进入mongodb目录下的bin目录

 ./mongo --host=mongodb对应IP地址

        2、列数所有数据库

show dbs

        3、创建数据库

use 数据库名称

        备注:

  • 不能是空字符串
  • 不得含有''(空格)、.(点)、$、/、\和\0(空字符)
  • 应全部小写
  • 最多64字节

        4、删除数据库

# 需要先进入当前数据库,然后执行删除命令
db.dropDatabase()

        5、集合的显示创建(表)

db.createCollection("集合名称")

        6、删除集合

db.集合名称.drop()

        7、单个文档的插入

db.集合名称.insert(
    <document or array of documents>,
    {
        writeConcern: <document>,
        ordered: <boolean>
    }
)
参数类型描述
documentdocument  or  array要插入到集合的文档或者文档数组(json格式)
writeConcerndocument
orderedboolean可选。如果为真,则按顺序插入数组中的文档,如果其中也一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果是假,则执行无序插入,如果其中一个文档出现错误,则继续处理数组中的主文档。在版本2.6+中默认无true

                例如:db.comment.insert({"articleid":"10000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(10),"state":null } )

        8、多个文档插入

db.集合名称.insertMany(
    [<document 1>, <document 2>,...],
    {
        writeConcern: <document>,
        ordered: <boolean>
    }
)

                例如:db.comment.insertMany([{"_id":"1","articleid" : "10001", "content" : "我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他.", "userid" : "1002", "nickname" : "相忘于江湖", "createtime" : new Date("2022-06-28T17:06:00.697Z"), "likenum" : NumberInt(10), "state" :"1" },{"_id":"2","articleid" : "10001", "content" : "我夏天空腹喝凉水,冬天喝温开水.", "userid" : "1005", "nickname" : "伊人憔悴", "createtime" : new Date("2022-06-28T17:06:00.697Z"), "likenum" : NumberInt(888), "state" :"1" },{"_id":"3","articleid" : "10001", "content" : "我一直喝凉开水,冬天夏天都喝.", "userid" : "1004", "nickname" : "杰克船长", "createtime" : new Date("2022-06-28T17:06:00.697Z"), "likenum" : NumberInt(666), "state" :"1" },{"_id":"4","articleid" : "10001", "content" : "专家说不能空腹吃饭,影响健康.", "userid" : "1003", "nickname" : "凯撒", "createtime" : new Date("2022-06-28T17:06:00.697Z"), "likenum" : NumberInt(2000), "state" :"1" },{"_id":"5","articleid" : "10001", "content" : "研究表明,刚烧开的水千万不能喝,因为烫嘴.", "userid" : "1003", "nickname" : "凯撒", "createtime" : new Date("2022-06-28T17:06:00.697Z"), "likenum" : NumberInt(3000), "state" :"1" }])
        9、查询所有

db.集合名称.find()
或者
db.集合名称.find({})

        10、有参查询

db.集合名称.find({"参数":"值"})

        11、查询第一条数据

db.comment.findOne({"参数":"值"})

         12、投影查询

db.comment.find({"参数:"值"},{显示列:1, 不显示列:0})

        13、以_id方式覆盖更新更新

db.comment.update({_id:"1"},{likenum:NumberInt(111)})

        备注:记录只会剩下_id,likenum字段,其他字段都覆盖没了

        14、局部更新

db.comment.update({_id:"2"}, {$set:{likenum:NumberInt(2222)}})

        15、批量更新

db.comment.update({userid:"1003"},{$set:{nickname:"张三"}}, {multi:true})

         16、列值增长修改

# 给_id=3的记录对应的likenum字段增加1
db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})

        17、删除文档

db.comment.remove(条件)
或
db.comment.remove({})  #删除所有

# 例如:db.comment.remove({_id:"1"})

        18、查询记录文档数量

db.comment.count()
或
db.comment.count(条件)

# 例如:db.comment.count({username:"张三"})

        19、分页查询

# 查询前几条
db.comment.find().limit(数量)

# 查询中间
db.comment.find().limit(数量).skip(跳过前几条数据)

        20、排序查询

# 排序方式  1:升序,-1:降序
db.comment.find().sort({字段名称: 排序方式, 字段名称2:排序方式,...})

        21、正则查询

db.comment.find({字段名: 正则表达式})
# 例如:db.comment.find({content:/不/})

        22、比较查询

# 大于
db.comment.find({字段:{$gt:value}})
# 大于等于
db.comment.find({字段:{$gte:value}})
# 等于
db.comment.find({字段:{$ne:value}})
# 小于
db.comment.find({字段:{$lt:value}})
# 小于等于
db.comment.find({字段:{$lte:value}})

        23、包含与不包含查询

# 包含
db.comment.find({字段:{$in:[value1,value2,...]}})
#不包含
db.comment.find({字段:{$nin:[value1,value2,...]}})

         24、条件查询

# and查询
db.comment.find({$and:[{条件1,},{条件2},...]})
# or查询
db.comment.find({$or:[{条件1,},{条件2},...]})

三、MongoDB索引

        1、查询索引

db.comment.getIndexes()

        2、创建索引

db.comment.createIndex(keys,options)
参数类型描述
keysdocument包含字段和值对的文档,其中字段是索引键,值描述该字段的索引类型。对于字段上的升序索引,请指定值1;对于降序索引,请指定值-1。比如:{字段:1或者-1},其中1表示指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。另外MongoDB支持几种不同的索引类型,包括文本、地理空间和哈希索引。
optionsdocument可选。包含一组控制索引创建的选项文档。有关详细信息,如下表

 Options参数

         3、单字段索引

# 按字段userid升序索引
db.comment.createIndex({userid:1})

        4、创建符合索引

db.comment.createIndex({字段1:排序方式,字段2:排序方式,...})

        5、删除索引

db.comment.dropIndex({字段:排序方式})
或
db.comment.dropIndex(索引名称)

        6、删除所有索引

db.comment.dropIndexes()

四、执行计划

        1、使用执行计划

db.comment.find({字段:值}).explain()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值