mongo-db 1 基础篇

2018-12-15  本文已影响0人  阿尔卡雷特

数据操作

1. 概念

集合 = 表
文档 = 表行数据

2. 操作

新增(集合不存在时会自动创建)

> db.集合.insert(json数据)
# 例如:
> db.test.insert({x:1})

# 动态插入数据
> for(i=3;i<100;i++)db.test.insert({x:i})

ps:可在插入时指定_id,例如: {x:2,_id:1}
ps:值可以使用new Date() 插入当前时间

数据查询

  1. 条件为空时返回所有记录
  2. 可跳过部分数据,相当于mysql的limit 后第一个参数
  3. 可限制查询条数,相当于mysql的limit 后第二个参数
  4. 可执行排序
> db.集合.find(条件)
# 例如{x:1}只查x:1的数据:
> db.test.find({x:1})
> db.test.find().skip(1).limit(2).sort({x:1})

# 查询1条
> db.tset.findOne() 

例: db.test.find()
结果:{"_id": ObjectId("12378371791d987"),"x":1}
其中_id 为自动生成的唯一标示

ps: 排序的值 1 为顺序=asc -1 为逆序=desc

聚合查询

db.集合.find(条件).count()

数据更新

  1. 覆盖更新

db.集合.update(目标查询条件,更新后的内容)

#例:
> db.test.insert({x:1,y:2,z:3})
> db.test.update({x:1},{y:999})
#更新后 {y:999}

ps:mongo的覆盖更新,默认只覆盖更新第一条匹配的数据
例:

> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.update({x:1},{x:999})
# 结果:{x:999},{x:1},{x:1}
  1. 部分属性更新
    db.集合.update(目标查询条件,{$set:更新后的内容})
    例:
> db.test.insert({x:1,y:2,z:3})
> db.test.update({x:1},{$set:{y:999}})
# 更新后 {x:1,y:999,z:3}
  1. 查找的数据不存在就创建一条
    db.集合.update(目标查询条件,更新后的内容,true)
# 例:
> db.test.update({x:1},{y:999},true)
# 更新后 {y:999}
  1. 全量更新
    db.集合.update(目标查询条件,{$set:更新后的内容},false,true)

ps:只能更新部分属性{$set:xx}
例:

> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.update({x:1},{$set:{x:999}},false,true)
# 结果:{x:999},{x:999},{x:999}
  1. 数据删除
    db.集合.remove(目标查询条件)
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.remove({x:1})
# 结果:

ps:不允许不传参数(不能向查询全部那样)

  1. 集合删除(表删除)
    db.集合.drop()
上一篇 下一篇

猜你喜欢

热点阅读