mongodb的简单使用

Mongodb

一、简单介绍

       概述跳过。

       mongodb存储数据非常快,查找时如果根据索引进行查找,也非常快,但对于非索引数据查找会进行全库搜索相对比较慢。如果业务涉及多检索条件且检索条件不确定,一般使用es或solr一起使用。

       搜索引擎进行使用时,1、全部索引,可使用他们自己的中间件进行数据的索引。2、增量索引 es默认时200ms进行一次触发更新。可自定义,但是设置过低会不稳定。业务中涉及到这种高实时性,需要做出选择。

 

比较
mysql mongodb
databases databases
table collection
row document
column field
table join 文档嵌入

 

二、基本语法

1、数据库
use 数据库名
show dbs 或 show databases
db 查看当前数据库
db.dropDatabase()
2、集合
db.createCollection(name)
show collections
show tables
db.collection.drop()
3、document CRUD
插入 try{}catch(e){print(e)}
db.collection.insert{
<document arrays documents>,
{
writeConcern:<document> #插入的时候性能和可靠性的级别
orderd:<boolean> # 按照顺序进行文档的插入
}
}
db.collection.insertMany{
[<document1>,<document2>...],
{
writeConcern:<document> #插入的时候性能和可靠性的级别
orderd:<boolean> # 按照顺序进行文档的插入
}
}
查询
db.collection.find()
db.collection.find(query,fields)
db.collection.find({_id:"1"},{field1:1,field2:0})
更新
db.collection.update{query,update,option}
db.collection.update{
<query>,
<update>,
{
upsert:<boolean>,
multi:<boolean>,
writeConcern:<document>,
collation:<document>,
arrayFilters:[<filterdocument1>...]}
hint:<doument|string> #4.2
}
}
1、覆盖 db.collection.update{{_id:"1"},{tesField:"test1"}}
2、局部更新 db.collection.update{{_id:"2"},{$set:{testField:"test2"}}}
3、批量更新 db.collection.update{{_id:"3"},{$set:{testField:"test2"}},{multi:true}}
4、列值增长 db.collection.update{{_id:"4"},{$inc:{testField:NumberInt(1)}}}
删除
db.collection.remove()
db.collection.remove({_id:"1"})
4、分页
4.1 统计
db.collection.count(query,[options])
4.2 分页
db.collection.find().limit().skip()
4.3 排序
db.collection.find().sort(key:1) 1:升序 -1:降序
ps:skip(),limit(),sort() sort()->skip()->limit()
5、更多查询
5.1 正则语法查询
5.2 比较查询 <,>,<=,>= $lt,$gt,$lte,$gte
5.3 包含查询 db.collection.find({field:{$in:["1","2"]}}) db.collection.find({field:{$nin:["1","2"]}})
5.4 条件查询 db.collection.find($and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lte:NumberInt(20000)}}]) 
db.collection.find($or:[{userId:"1"},{likeNum:{$lt:NumberInt(100)}}])

三、springData mongodb Template 和 compass的使用

1、前者是spring连接mongodb操作的框架,和hibernate,mybatis类似

2、视图化工具,页面挺美观的,就是数据量大了,查不出数据了。

四、集群

集群概念跳过,操作跳过。

https://www.cnblogs.com/littleatp/p/8563273.html

五、分片

分片概念跳过,操作跳过。 

https://www.cnblogs.com/zhoujinyi/p/4635444.html

六、安全认证

1、一种是单实例的。

 2、一种是集群的,集群之间也需要认证。

https://blog.csdn.net/jeanette_zlj/article/details/79563954

链接都没有仔细看过,咋一看还行,等需要的时候再仔细看。

 

posted @ 2020-02-28 15:23  yiyangsanye  阅读(147)  评论(0编辑  收藏  举报