nosql之mongodb常用命令总结

说明: 以下内容为mongodb nosql数据库的使用总结

monogdb数据库的使用总结

安装 LINUX下

  • 下载安装包
    链接
  • 解压安装包
    tar -zxvf your_package.tgz
  • 移动至/usr/local/目录下 (自定义)
    sudo -mv -r your_package_dir/ /usr/local/mongodb
  • 添加可执行文件至环境变量
    export PATH=/usr/local/mongodb/bin:$PATH

启动

  • 服务端
    mongod --config
  • 连接
    mongo -h -p

数据类型

  • Object ID: 文档ID
    • 是一个12字节的十六进制数
    • 前4个字节为当前时间戳
    • 接下来3个字节为机器的ID
    • 接下来的三个字节为Mongodb的服务进程ID
    • 最后三个字节是简单的增量值
  • Sting: 字符串,utf8
  • Boolean: 布尔值
  • Integer: 整数,32位或64位,取决于设备
  • Double: 浮点型
  • Arrays: 数组或列表
  • Object: 嵌入式文档,一个值为一个文档
  • Null: Null值
  • Timestamp: 时间戳
  • Date: 存储日期或时间的UNIX格式

常用命令

基本

database

  • 常看当前使用数据库 db
  • 查看所有的数据库 show dbs/databases
  • 切换数据库 use dbname
  • 删除当前数据库 db.dropDatabase()

colection

  • 创建集合(向一个不存在的集合插入数据时会自动创建
db.createCollection(name, options)
db.createCollection("testCollection")
db.createCollection("sub", {capped: true, size:10})
  • 查看集合 show collections
  • 删除集合 db.collection_name.drop()

插入

  • db.collection_name.insert(document)
  • db.collection_name.insert({name: “ceaqw”, age: 19})
  • db.collection_name.insert({_id: “20200523”, name: “ceaqw”})
    • 不指定_id则程序自动创建Object ID

  • db.collection_name.remove(, {justOne: })
    • query: 查询条件
    • justOne: 可选,删除的数量,默认为false,表示删除多条

  • db.collection_name.update(, <update, {mutli: }>)
    • query: 查询条件
    • update: 更新操作符
    • mutli: 可选,默认false,表示只找到第一条记录
  • db.test.update({name: “hr”}, {name: “ceaqw”})
    • 更改一条(其他信息改变)
  • db.test.update({name: “hr”}, {$set:{name: “ceaqw”}})
    • 更新一条(其他信息不变)
  • db.test.update({name: “ceaqw”}, {$set:{name: “ttt”}}, {mutli: true})
    • 更新全部
      mutli update only works with $ operators

  • db.collection_name.find()
  • db.collection_name.findOne()
    • 查询一条
  • db.collection_name.find({query_filter}).pretty()
    • 美观输出

比较运算符

  • db.collection_name.find({age: {$gte: 20}})
  • $lt 小于
  • $gt 大于
  • $lte 小于等于
  • $gte 大于等于
  • $ne 不等于

逻辑运算符

  • and
    • db.collecotion_name.find({age:{$gte: 18}, name: “ceaqw”})
  • or
    • db.collection_name.find({$or:[{age: 18}, {name: “ceaqw”}]})

范围查询

  • $in 在某个范围
    • db.collection_name.find({age:{$in:[18, 28]}})
  • $nin 不在某个范围

正则表达式

  • 使用/regex_synatx/或$regex
  • 查询名字以c开头的学生
    • db.dtu.find({name: /^c/})
    • db.stu.find({name: {$regex: “^c”}})

limit skip

  • limit 限制读取的数据数目
    • db.collection_name.find().limit(NUMBER)
  • skip 掉过指定数目的数据
    • db.collection_name.find().dkip(NUMBER)
  • 同时使用
    • db.collection_name.find().skip(2).limit(5)

自定义查询

  • $where
  • 查询奈年龄大于18的学生
    db.stu.find(
    $where: function(){
    return this.age > 18;
    })

投影

  • db.collection_name.find({}, {filed_name:1,…})
    • 字段对应数字为0不显示, 1显示 _id默认显示
    • db.stu.find({}, {name: 1, age: 0})

排序

  • sort() db.collection_name.find().sort({filed:1, …})
    • 字段参数为1升序, -1降序

统计个数

  • count() db.collection_name.find({filter}).count()

去重

  • distinct() db.collection_name.distinct(‘filter_filed’, {filter})
    • 根据地址去重,年龄大于18
    • db.stu.distinct(“hometown”, {age:{$gt:18}})

保存

  • db.collection_name.save()

其余更详细的查询命令稍后更新

猜你喜欢

转载自blog.csdn.net/qq_43650576/article/details/106282756