Mongodb(1)操作方法

2017/02/02 Mongodb 阅读次数:

摘要:介绍了mongodb安装方法,以及基本使用,基础命令,集合,数据类型,增删改查,聚合,高级操作,对日常用到的方法汇总

安装mongodb:

安装网址:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

关于database的基础命令

查看当前的数据库:db
查看所有的数据库:show dbs 或者 show databases
切换数据库:use db_name
删除当前的数据库:db.dropDatabase()

关于集合的基础命令

不手动创建集合: 向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来 手动创建结合:

db.createCollection(name,options)
db.createCollection("stu")
db.createCollection("sub", { capped : true, size : 10 })

#参数capped: 默认值为false表示不设置上限,值为true表示设置上限
#参数size: 当capped值为true时, 需要指定此参数, 表示上限⼤⼩,当⽂档达到上限时, 会将之前的数据覆盖, 单位为字节
#查看集合:
show collections
#删除集合:
db.集合名称.drop()

#查看集合内容:
db.collections_name.find()

数据类型

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

注意点

  • 创建⽇期语句如下 :参数的格式为YYYY-MM-DD

  • new Date(‘2017-12-20’)

  • 每个⽂档都有⼀个属性, 为_id, 保证每个⽂档的唯⼀性

  • 可以⾃⼰去设置_id插⼊⽂档,如果没有提供, 那么MongoDB为每个⽂档提供了⼀个独特的_id, 类型为objectID

  • objectID是⼀个12字节的⼗六进制数:

  • 前4个字节为当前时间戳

  • 接下来3个字节的机器ID

  • 接下来的2个字节中MongoDB的服务进程id

  • 最后3个字节是简单的增量值

插入

db.集合名称.insert(document)
db.stu.insert({name:'gj',gender:1})
db.stu.insert({_id:"20170101",name:'gj',gender:1})
# 插⼊⽂档时, 如果不指定_id参数, MongoDB会为⽂档分配⼀个唯⼀的ObjectId

保存

db.集合名称.save(document)
#如果⽂档的_id已经存在则修改, 如果⽂档的_id不存在则添加

简单查询

db.集合名称.find()

mongodb的启动

sudo mongod --config /etc/mongod.conf &

mongodb的基础操作

  • 增加
db.collection_name.insert({})
#id相同会报错,不同能够插入
db.collection_name.save({})
#id相同会更新其他字段,不同会插入
  • 更新
db.collections.update({条件},{内容})

#把原始的满足条件的第一条记录更新为`内容`

db.collections.update({},{$set:{更新的字段}},{multi:ture})

#仅仅跟新字段,加上multi条件会更新全部
  • 删除
db.collections_name.remove({条件})
#会把满足条件的全部删除

投影

#决定哪些字段需要输出,哪些不需要输出
find({查询条件},{投影条件})
`_id`:默认会输出,不需要的时候,`_id:0`
#其他字段,默认不会输出,需要的时候,字段名:1

统计数量

db.collection_name.find({条件}).count()
db.collection_name.count({条件})

去重

db.collection\_name.distinct\("去重字段名",{查询条件}\)
#返回一个数组,数组中是去重之后的字段值

增删改查

- 
- db.col.insert({})
- db.col.save({})
- 
- db.col.remove({条件})
- 
- db.col.update({条件},{$set:{name:"jack"}})
- 
- db.col.find({条件})

高级查询

- 与和或
-  db.col.find({name:"jack",age:30})
-  db.col.find({$or:[{条件1},{条件2},{条件3}]})

- 比较运算符
- $gt
- $gte
- $lt
- $lte
- $ne
- 范围运算符
- $in eg. db.col.find({age:{$in:[18,28,38]}})
- $nin
- 正则
- db.col.find({name:/正则/})
- db.col.find({name:{$regex,"正则"}})
- 投影
- `db.col.find({},{name:1,_id:0})`
- sort
- db.col.find({}).sort(name:1)
- skip
-
- limit
-
- count
- db.col.find({条件}).count()
- db.col.count({条件})
- distinct
- db.col.distinct("age",{条件})
- 返回数组

聚合

- $group
- db.col.aggregate({$group:{_id:"$name",count:{$sum:1}}})
- db.col.aggregate({$group:{_id:null,count:{$sum:"$age"}}})
- $match
- db.col.aggregate({$match:{age:{$gt:28}}})
- $project
- db.col.aggregate({$project:{_id:0,name:1}})
- $sort

- $limit
- $skip
- $unwind
- db.col.aggregate({$unwind:"$size")

Search

    Table of Contents