mongod基础基础

mongodb与mysql区别**

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引

数据库

一个mongodb可以建立多个数据库。

默认数据库为“db”,该数据库存储在data目录中。

  • admin: 从权限的角度来看,这是"root"数据库
  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
//显示所有数据库
show dbs
//查看当前数据库
db
//连接到一个制定的数据库
use local(local 数据库名称)
//删除
db.dropDatabase()

集合

集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

//创建集合
db.createCollection(name, options)
//查看集合
show collections
//删除集合
db.collection.drop()
字段类型描述
capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId布尔(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size数值(可选)为固定集合指定一个最大值,以千字节计(KB)。
如果 capped 为 true,也需要指定该字段。
max数值(可选)指定固定集合中包含文档的最大数量

文档

文档是一组键值(key-value)对。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别。

RDBMSMongoDB
数据库数据库
表格集合
文档
字段
表联合嵌入文档
主键主键 (MongoDB 提供了 key 为 _id )

插入文档

//插入文档(col是集合名)
db.col.insert({
        username: 'jing', 
    password: '123456',
})
//也可以将数据定义为一个变量
document =({
    username:'jing',
  password:'123456'
  })
 db.col.insert(document)
 
 //插入多条文档数据
 db.col.insertMany([{"a": 1}, {'b': 2}])

区分多条和多个字段

截屏2020-05-12下午4.57.40.png

 

更新文档update

这个目前有点懵,先看一下语法结构

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别

例子:

//where a = 1 时 , 将第一条符合匹配的数据b改为‘genggai’
db.col.update({"a": 1}, {$set:{'b': 'genggai'}})
//where a = 1 时 , 将所有符合匹配的数据b改为‘genggai’
db.col.update({"a": 1}, {$set:{'b': 'genggai'}},{multi:true})

效果:

截屏2020-05-12下午5.06.05.png

更新文档save

替换了_id为5eba64e52006681daabd0831的文档

 db.col.save({
... "_id":ObjectId("5eba64e52006681daabd0831"),
... "a":"save",
... "b":"save"})

 

删除文档

db.collection.remove(
   <query>,
   <justOne>:如果设为 true或1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
)
//例子:
//删除所有符合条件的文档
db.col.remove({'a':'save'})
//删除第一个符合条件的文档
db.col.remove({'a':'save'},1)

查询文档

db.collection.find(query, projection)

//查询col集合里面所有的文档
db.col.find().pretty()

截屏2020-05-12下午5.26.12.png

语句比较 -- 条件操作符

操作操作符范例

等价于

等于

 

db.col.find({"a":1}).pretty()where a = 1
小于ltdb.col.find({"a":{$lt:5}}).pretty()where a < 5
小于或等于ltedb.col.find({"a":{$lte:5}}).pretty()where a <= 50
大于gtdb.col.find({"a":{$gt:5}}).pretty()where a > 50
大于或等于gtedb.col.find({"a":{$gte:5}}).pretty()where a >= 50
不等于nedb.col.find({"a":{$ne:5}}).pretty()where a != 50


and 条件并


db.col.find({key1:value1, key2:value2}).pretty()
//例子
db.col.find({a:3, b:"123456}).pretty()
//等价于mysql
where a = 3 and b = "123456"

或者or ($or)

//where a = 3 or b = "123456"
db.col.find({$or:[{"a":3},{"b": "123456"}]}).pretty()

今天先到这里😭

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值