MongoDB入门实操《一》
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB入门实操《一》相关的知识,希望对你有一定的参考价值。
参考技术A什么是MongoDB
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
如何搭建MongoDB服务
step1: docker pull mongo
step2: docker run -d --name mongotest -p 27017:27017 mongo --auth (推荐)
或者: docker run -d --name mongotest -p 27017:27017 mongo
备注:--auth 表示需要密码才可以访问容器服务
无--auth 可以直接访问
step3: 进入容器 docker exec -it mongotest bash 或者 通过dashboard 进入(推荐)
Mongo的常规使用
在容器里面操作使用Mongo数据库:
总结:今天的文章主要介绍了什么是Mongo DB, Mongo DB服务的构建及Mongo的一些基础操作命令,如创建用户,用户授权,创建数据,显示数据,创建集合,显示集合,集合数据查询,集合删除等(并对比着mysql命令进行了解释),希望对新手有帮助。
MongoDB入门实操《中篇》续
欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。
1、MongoDB 中的操作与MysqlDB 中的查询操作对比展示
左边为Mongo 命令,右边为Mysql 命令:
db.test.find() ==> select * from test db.test.findOne() ==> select *from test limit 1 db.test.find().pretty() ==>select * from test \\G db.test.find().limit(2) ==> select * from test limit 2 db.test.find().count() ==>select count(*) from test db.test.find().sort({age: 1}) ==>select * from test order by age db.test.find().sort({age: -1}) ==>select * from test order by age desc db.test.find({"age" : 1}) ==>select * from test where age = 1 db.test.find({"age":{$gt:29}}).skip(1).limit(3) ==> select * from test where age>29 limit 1,3; db.test.find({"name" : "joe", "age" : 1}) ==>select * from test where "name" = "joe" and age = 1 db.test.find({}, {"name" : 1, "age" : 1}) ==>select name, age from test db.test.find({}, {"name" : 1, "_id" : 0}) ==>select name from test # 这里相当于是不让_id显示出来 db.test.find({"age" : {"$gte" : 18, "$lte" : 30}}) ==>select * from test where age >=18 and age <= 30 // $lt(<) $lte(<=) $gt(>) $gte(>=) db.test.find({"name" : {"$ne" : "joe"}}) ==>select * from test where name <> "joe" db.test.find({"age" : {"$in" : [25, 42, 30]}}) ==> select * from test where age in (25, 42, 30) db.test.find({"age" : {"$nin" : [25, 42, 30]}}) ==>select * from test where age not in (25, 42, 30) db.test.find({"$or" : [{"age" : 25}, {"job" : "tester"}]}) ==>select * form test where age= 25 or job= "tester" db.test.find({"$not": {"age" : 27}}) ==>select * from test where not (age = 27) db.test.find({"name" : {"$in" : [null], "$exists" : true}}) ==> select * from test where name is null db.test.find({"name" : /joy?/i}) ==>select * from test where name like "%joy%”
2、Mysql和MongoDB区别以及主要应用场景
Mysql和MongoDB区别:
应用场景:
1、如果需要将MongoDB作为后端DB来代替Mysql使用,即这里Mysql与MongoDB 属于平行级别。
那么,这样的使用可能有以下几种情况的考量:
(1)、MongoDB所负责部分以文档形式存储,能够有较好的代码亲和性,JSON格式的直接写入方便。(如日志之类)
(2)、从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。
(3)、MongoDB本身的failover机制,无需使用如MHA之类的方式实现。
2、将MongoDB作为类似redis ,memcache来做缓存DB,为Mysql提供服务,或是后端日志收集分析。考虑到MongoDB属于nosql型数据库,sql语句与数据结构不如Mysql那么亲和 ,也会有很多时候将MongoDB做为辅助Mysql而使用的类redis memcache 之类的缓存db来使用。亦或是仅作日志收集分析。
备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,一起共同成长吧。
以上是关于MongoDB入门实操《一》的主要内容,如果未能解决你的问题,请参考以下文章