`

mongodb查询和mysql查询对比

 
阅读更多

db.users.find() select * from users

db.users.find({"age" : 27}) select * from users where age = 27

db.users.find({"username" : "joe", "age" : 27}) select * from users where "username" = "joe" and age = 27

db.users.find({}, {"username" : 1, "email" : 1}) select username, email from users

db.users.find({}, {"username" : 1, "_id" : 0}) // no case  // 即时加上了列筛选,_id也会返回;必须显式的阻止_id返回

db.users.find({"age" : {"$gte" : 18, "$lte" : 30}}) select * from users where age >=18 and age <= 30 // $lt(<) $lte(<=) $gt(>) $gte(>=)

db.users.find({"username" : {"$ne" : "joe"}}) select * from users where username <> "joe"

db.users.find({"ticket_no" : {"$in" : [725, 542, 390]}}) select * from users where ticket_no in (725, 542, 390)

db.users.find({"ticket_no" : {"$nin" : [725, 542, 390]}}) select * from users where ticket_no not in (725, 542, 390)

db.users.find({"$or" : [{"ticket_no" : 725}, {"winner" : true}]}) select * form users where ticket_no = 725 or winner = true

db.users.find({"id_num" : {"$mod" : [5, 1]}}) select * from users where (id_num mod 5) = 1

db.users.find({"$not": {"age" : 27}}) select * from users where not (age = 27)

db.users.find({"username" : {"$in" : [null], "$exists" : true}}) select * from users where username is null // 如果直接通过find({"username" : null})进行查询,那么连带"没有username"的纪录一并筛选出来

db.users.find({"name" : /joey?/i}) // 正则查询,value是符合PCRE的表达式

db.food.find({fruit : {$all : ["apple", "banana"]}}) // 对数组的查询, 字段fruit中,既包含"apple",又包含"banana"的纪录

db.food.find({"fruit.2" : "peach"}) // 对数组的查询, 字段fruit中,第3个(从0开始)元素是peach的纪录

db.food.find({"fruit" : {"$size" : 3}}) // 对数组的查询, 查询数组元素个数是3的记录,$size前面无法和其他的操作符复合使用

db.users.findOne(criteria, {"comments" : {"$slice" : 10}}) // 对数组的查询,只返回数组comments中的前十条,还可以{"$slice" : -10}, {"$slice" : [23, 10]}; 分别返回最后10条,和中间10条

db.people.find({"name.first" : "Joe", "name.last" : "Schmoe"})  // 嵌套查询

db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套的元素是数组时使用,

db.foo.find({"$where" : "this.x + this.y == 10"}) // 复杂的查询,$where当然是非常方便的,但效率低下。对于复杂查询,考虑的顺序应当是 正则 -> MapReduce -> $where

db.foo.find({"$where" : "function() { return this.x + this.y == 10; }"}) // $where可以支持javascript函数作为查询条件

db.foo.find().sort({"x" : 1}).limit(1).skip(10); // 返回第(10, 11]条,按"x"进行排序; 三个limit的顺序是任意的,应该尽量避免skip中使用large-number

分享到:
评论

相关推荐

    mysql和mongodb性能对比报告

    本报告旨在通过一系列实验对比MySQL和MongoDB两种不同类型的数据库(关系型数据库与NoSQL数据库)在数据插入性能上的差异,帮助开发者在实际应用中做出更加合适的选择。 #### 测试环境 - **硬件配置**:CPU i5 ...

    千万级Mysql-MongoDB性能对比报告

    本次性能对比测试主要关注不同规模的数据插入操作在MySQL和MongoDB中的表现情况,特别是在处理千万级别数据时的表现。测试涵盖了不同的数据提交方式和数据量,旨在全面评估两种数据库系统的性能差异。 #### MySQL...

    MySQL与MongoDB多文档事务支持对比分析.docx

    在对比分析中,我们可以看到MySQL的事务支持更加成熟和全面,而MongoDB虽然在4.0版本中增加了多文档事务,但仍然存在一些限制,特别是在分布式和大事务处理方面。选择使用哪种数据库取决于应用的需求,如对事务复杂...

    MongoDB与MySQL的操作对比表及区别介绍

    MySQL是基于ACID(原子性、一致性、隔离性和持久性)原则的关系型数据库,支持标准的SQL查询语言,而MongoDB是非关系型数据库,属于NoSQL类别,以键值对或文档形式存储数据,它更注重灵活性和高扩展性。 1. 数据...

    mongodb与mysql命令详细对比

    MongoDB和MySQL是两种不同类型的数据库系统,它们在数据存储、查询语法以及管理方式上有显著差异。MongoDB是一种NoSQL数据库,强调灵活性和高性能,而MySQL则是传统的SQL关系型数据库,提供严格的结构化数据处理。 ...

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    在本教程中,我们将对比 MongoDB 和 MySQL 的语法,帮助读者更好地理解和掌握这两种数据库系统。 1. 数据模型: - MySQL 采用的是表格形式的数据模型,由数据库、表和记录组成,具有固定的列名和数据类型。 - ...

    MongoDB与MySQL常用操作语句对照

    MongoDB与MySQL都是数据库管理系统,但它们的数据模型和查询语言有所不同。本篇文章将对比这两种数据库中常用的操作语句,帮助读者理解和掌握两者之间的差异。 1. 查询数据: - MySQL 使用 `SELECT * FROM user` ...

    基于MySQL到MongoDB简易对照表的详解

    在本篇文章中,我们将针对如何从MySQL数据库迁移到MongoDB数据库进行详细解析,特别是针对基本的数据库操作,如查询、插入、更新、删除等操作的对比。 首先,让我们从查询开始。在MySQL中,查询通常使用SQL语句进行...

    MySQL和MongoDB设计实例对比分析

    设计实例对比分析MySQL和MongoDB,我们可以深入理解这两种数据库的核心特性和应用场景。MySQL作为关系型数据库,遵循ACID(原子性、一致性、隔离性、持久性)原则,以表格形式存储数据,适合处理结构化、规则性强的...

    MongoDB与mysql对比

    什么是mongodb ...MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象 的查 询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建 立索 引。它是

    MongoDBTest.

    MongoDBTest是一个可能的项目或实验,旨在对比和评估不同类型的数据库(可能包括MongoDB、MySQL、PostgreSQL等)在特定场景下的性能表现。 在“3种DB的效率测试.rar”中,很可能包含了对三种不同数据库系统进行的一...

    Mongodb数据库的深入学习 5版本之后 学完之后还想学个mysql .zip

    - 分区(Sharding)改进:MongoDB 5.x优化了分区策略,支持自动和手动分区,使得大数据存储和查询更高效。 - 多文档事务(Multi-Document Transactions):从4.0版本开始引入,5.x版本进一步完善,提供了ACID兼容...

    各种数据库特性及比较

    本文将对 MongoDB、HDFS、HBase、MySQL、FastDFS、Redis、Hive 等数据库管理系统进行比较和分析。 MongoDB MongoDB 是一个高性能、开源、无模式的文档型数据库,开发语言是 C++。它在许多场景下可用于替代传统的...

    MYSQL学习资料

    mysql与MongoDB语法对比 mysql分表的3种方法 MySQL数据库扩展小记 mysql架构方案 MySQL水平分区表实际操作总结 Mysql水平分表 mysql水平分表和垂直分表和数据库分区 sysbench mysql 坚持不懈 sysbench安装和使用 ...

    MongoDB开发使用手册.docx

    MongoDB 因其强大的查询能力、丰富的数据模型和易用性,成为了许多开发者首选的NoSQL解决方案,特别是在处理业务数据和替代传统MySQL的场景下。然而,在涉及高度一致性的场景下,如银行交易,可能需要考虑其他支持...

Global site tag (gtag.js) - Google Analytics