MongoDB使用

MongoDB和关系型数据库的区别

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
tablejoins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

连接MongoDB

命令

show dbs #显示数据库

use xxx   #切换到xxx数据库,这里也可以用作创建,但是创建后是没有数据的说以show dbs是不会显示整个数据库的,需要插入数据才会显示

db    #显示当前数据库

show collections #显示集合

创建/删除数据库

use collection  #创建
db.dropDatabase() #删除当前db

创建集合

(也就是sql里的表)name集合的名称,options集合的参数(可选)

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

删除集合

db.collection.drop() 

插入

插入的时候如果集合不存在,那么插入操作会创建集合。

db.collection.insert({title:"这是一个测试数据",arr:["111","222",333,"444",555]}) #一个数组中可以插入字符串或数字

db.collection.insertOne({aaa:123})  #插入一条数据  3.2后支持

db.collection.insertMany([{a:1},{b:"2"}])   #插入多条数据  3.2后支持

删除

对于大量的删除操作,把你想要保留的文档复制到一个新的集合然后使用 db.collection.drop() 方法删除原集合或许会更高效。

db.collection.deleteMany({})   #删除全部document,当然drop() 可能效果会

db.collection.deleteMany({aaa: 123 })     #删除多条aaa=123的document

db.collection.deleteOne({aaa: 123 })      #删除第一条aaa=123的document

查询

db.collection.find({})  #等价于db.test.find() 

db.collection.find({aaa:123,bbb:234}) #同时满足aaa=123,bbb=234

更新

更新是是可以增加字段的

db.collection.updateOne() #即使可能有多个文档通过过滤条件匹配到,但是也最多也只更新一个文档。

db.collection.updateOne(
   { "aaa": "123" },    #query定位想当与sql的where
   {
     $set: { "bbb": "567"},     #修改的内容,相当于sql的where
     $currentDate: { lastModified: true }  #可以通过这个命令增加修改时间,可以不加
   }
)

db.collection.updateMany()  #更新所有通过过滤条件匹配到的文档.


db.collection.updateMany(
   { "aaa": "123" },    #query定位想当与sql的where
   {
     $set: { "bbb": "567","ccc":"123"},     #修改的内容,相当于sql的where,我还在这里加了新的字段

     $currentDate: { lastModified: true }  #可以通过这个命令增加修改时间,可以不加
   }
)

db.collection.replaceOne() #和updateOne类似,但是不能做到只更新某些属性,这是一个替换操作

db.collection.replaceOne({aaa:"123"},{aaa:"haha",detail:"我在这里加了字段"})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值