MongoDB 命令

1. MongoDB 的基本操作

-- 查看数据库
sd

-- 切换数据库 如果没有对应的数据库则创建
use 数据库名

-- 创建集合
db.createCollection("集合名")

-- 查看集合
show tables
show collections

-- 删除集合
db.集合名.drop()

--  删除当前数据库
db.dropDatabase()

2. MongoDB 集合数据操作(CURD)

2.1 数据添加

  • 插入单条数据 db.集合名.insert(文档)

    文档的数据结构和 JSON 基本一样。
    所有存储在集合中的数据都是 BSON 格式。
    BSON 是一种类 json 的一种二进制形式的存储格式,简称 Binary JSON

  • 例子
    db.resume_preview.insert({name:"张晓峰",birthday:new ISODate("2000-07- 01"),expectSalary:15000,gender:0,city:"bj"})

    没有指定 _id 这个字段系统会自动生成,也可以指定 _id

    _id 类型是 ObjectId 类型是一个 12 字节 BSON 类型数据,有以下格式:

    • 4 个字节表示时间戳 ObjectId("对象Id字符串").getTimestamp() 来获取
    • 接下来的 3 个字节是机器标识码
    • 紧接的两个字节由进程 id 组成(PID
    • 最后三个字节是随机数
  • 插入多条数据
    db.集合名.insert([文档,文档])

2.2 数据查询

2.2.1 比较条件查询

db.集合名.find(条件)

操作条件格式例子RDBMS 中的条件
等于{key:value}db.col.find({字段名:值}).pretty()where 字段名 = 值
大于{key:{$gt:value}}db.col.find({字段名:{$gt:值}}).pretty()where 字段名 > 值
小于{key:{$lt:value}}db.col.find({字段名:{$lt:值}}).pretty()where 字段名 < 值
大于等于{key:{$gte:value}}db.col.find({字段名:{$gte:值}}).pretty()where 字段名 >= 值
小于等于{key:{$lte:value}}db.col.find({字段名:{$lte:值}}).pretty()where 字段名 <= 值
不等于{key:{$ne:value}}db.col.find({字段名:{$ne:值}}).pretty()where 字段名 != 值

2.2.2 逻辑条件查询

  • and 条件
    MongoDBfind() 方法可以传入多个键(key),每个键(key) 以逗号隔开,即常规 SQLAND 条件 db.集合名.find({key1:value1, key2:value2}).pretty()

  • or 条件
    db.集合名.find({$or:[{key1:value1}, {key2:value2}]}).pretty()

  • not 条件
    db.集合名.find({key:{$not:{$操作符:value}}).pretty()

2.2.3 分页查询

db.集合名.find({条件}).sort({排序字段:排序方式})).skip(跳过的行数).limit(一页显示多少数据)

2.3 数据更新

$set :设置字段值
$unset :删除指定字段
$inc:对修改的值进行自增

db.集合名.update(
	<query>,
	<update>, 
	{ 
		upsert: <boolean>,
		multi: <boolean>,
		writeConcern: <document> 
	})

参数说明:

  • query : update 的查询条件,类似 sql update 查询内 where 后面的。

  • update
    update 的对象和一些更新的操作符(如$set,$inc...)等,也可以理解为 sql updateset 后面的

  • upsert
    可选,这个参数的意思是,如果不存在 update 的记录,是否插入objNewtrue 为插入,默认 是 false,不插入。

  • multi
    可选,MongoDB 默认是 false ,只更新找到的第一条记录,如果这个参数为 true ,就把按条件查 出来多条记录全部更新。

  • writeConcern
    可选,用来指定 mongod 对写操作的回执行为,比如写的行为是否需要确认。
    举例: db.集合名.update({条件},{$set:{字段名:值}},{multi:true})

writeConcern 包括以下字段:

{ w: <value>, j: <boolean>, wtimeout: <number> }

  • w: 指定写操作传播到的成员数量
    比如:
    w=1(默认):则要求得到写操作已经传播到独立的 Mongod 实例或副本集的 primary 成员的确认
    w=0:则不要求确认写操作,可能会返回 socket exceptionsnetworking errors
    w="majority":要求得到写操作已经传播到大多数具有存储数据具有投票的(data-bearing voting )成员(也就是 members[n].votes 值大于 0 的成员)的确认

  • j: 要求得到 Mongodb 的写操作已经写到硬盘日志的确认
    比如:
    j=true:要求得到 Mongodb (w 指定的实例个数)的写操作已经写到硬盘日志的确认。j=true 本身并不保证 因为副本集故障而不会回滚。

  • wtimeout:指定 write concern 的时间限制,只适用于 w>1 的情况
    wtimeout 在超过指定时间后写操作会返回 error,即使写操作最后执行成功,当这些写操作返回时,MongoDB 不会撤消在 wtimeout 时间限制之前执行成功的数据修改。
    如果未指定 wtimeout 选项且未指定 write concern 级别,则写入操作将无限期阻止。 指定 wtimeout 值为 0 等同于没有 wtimeout 选项。

2.4 数据删除

db.collection.remove(
	<query>,
	{
		justOne: <boolean>,
		writeConcern: <document>
	}
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)用来指定 mongod 对写操作的回执行为。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小松の博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值