安装好Docker,然后执行下面的脚本。
> docker run -d --name mongodb \
-p 27017:27017
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
-v /home/work/volumes/mongodb/data:/data/ \
--privileged=true \
mongo
原创小于 1 分钟
安装好Docker,然后执行下面的脚本。
> docker run -d --name mongodb \
-p 27017:27017
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
-v /home/work/volumes/mongodb/data:/data/ \
--privileged=true \
mongo
将MongoDB用作内存数据库(in-memory database),也就是让MongoDB
完全在内存中操作者数据的用法,比较适用于以下场景。
置于慢速RDBMS系统之前的写操作密集型高速缓存。
嵌入式系统。
无需持久化数据的PCI兼容系统。
将存储在MongoDB数据库中的Collection
进行分片需要合理选择分片Key
,它直接决定了集群中数据分布是否均衡、集群性能是否良好。
下面是一个记录日志的Document。
{
server : "ny153.example.com" ,
application : "apache" ,
time : "2021-01-02T21:21:56.249Z" ,
level : "ERROR" ,
msg : "something is broken"
}
如果MongoDB使用分片+副本集方式且未明确指定分片键时,不能使用下面的方式调用update
命令。
> db.usergeo.update({userid:200},{$set:{userid:200,gispoint:{latitude:139.2658742,longitude:65.956483},updatetime:"2020-04-14 18:05:51"}}, true, false)
很多Java
工程师除了会Java以外,好像不会别的,比如问到常用的MongoDB命令有哪些,都该怎么使用的时候,很多人都是一问三不知。
这一点让人很意外,但不是夸大,而是在面试很多Java工程师时的真实结果。
虽然在系统运行时,必须通过代码来读写数据库的数据,但在日常调试的时候,能够用命令直接和数据库打交道的话,显然比代码要高效很多。
下面是在调试MongoDB时,高频会用到的一些命令。
有了Redis之后,很快又出现了新的应用需求。
相对于MySQL
这种存储结构化数据的数据库来说,它所有的数据表都是事先定义好的,数据表中的每一个字段也都有一个预期值存在。即使没有,也会有默认值来填充。