首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MongoDB入门实操《中篇》续

MongoDB入门实操《中篇》续

作者头像
Wu_Candy
发布于 2022-07-04 08:57:51
发布于 2022-07-04 08:57:51
25900
代码可运行
举报
文章被收录于专栏:无量测试之道无量测试之道
运行总次数:0
代码可运行

1

MongoDB 中的操作与MysqlDB 中的查询操作对比展示


左边为Mongo 命令,右边为Mysql 命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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来使用。亦或是仅作日志收集分析。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验