mongodb与mysql命令对比

Posted zy9011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb与mysql命令对比相关的知识,希望对你有一定的参考价值。

我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识。

mongodb与mysql命令对比

关系型数据库一般是由数据库(database)、表(table)、记录(record)三个层次概念组成。而非关系型数据库mongodb是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。mongodb对于关系型数据库里的表,没有行和列的关系概念,这体现了模式的自由特点。

语法命令如下列表格所示

mongodb语法说明

mongodb语法很多,比如多列索引,查询时可以统计函数,支持多条件查询,但是目前对多表的查询是不支持的,可以想办法通过数据冗余来解决多表查询的问题。举例如下所示。

查询colls所有数据

db.colls.find() //select * from colls

通过指定条件查询

通过指定条件查询

db.colls.find(‘last_name': ‘Smith');//select * from colls where last_name='Smith'

指定多条件查询

指定多条件查询

db.colls.find(  x : 3, y : “foo”  );//select * from colls where x=3 and y='foo'

指定条件范围查询

db.colls.find(j: $ne: 3, k: $gt: 10 );//select * from colls where j!=3 and k>10

查询不包括某内容

db.colls.find(, a:0);//查询不显示a 字段的所有列

支持<, <=, >, >=查询,需用符号替代分别为 l t , lt, ltlte, g t , gt, gtgte

db.colls.find( “field” :  $gt: value   );
db.colls.find( “field” :  $lt: value   );
db.colls.find( “field” :  $gte: value   );
db.colls.find( “field” :  $lte: value   );

也可对某一字段做范围查询

db.colls.find( “field” :  $gt: value1, $lt: value2   );

不等于查询用字符$ne

db.colls.find(  x :  $ne : 3   );

in查询用字符$in

db.colls.find(  “field” :  $in : array   );
db.colls.find(j:$in: [2,4,6]);

not in查询用字符$nin

db.colls.find(j:$nin: [2,4,6]);

取模查询用字符$mod

db.colls.find(  a :  $mod : [ 10 , 1 ]   )// where a % 10 == 1

$all查询

db.colls.find(  a:  $all: [ 2, 3 ]   );//指定a满足数组中任意值时

$size查询

db.colls.find(  a :  $size: 1   );//对对象的数量查询,此查询查询a的子对象数目为1的记录

$exists查询

db.colls.find(  a :  $exists : true   ); // 存在a对象的数据
db.colls.find(  a :  $exists : false   ); // 不存在a对象的数据

t y p e 查 询 type查询 typetype值为bsonhttps://bsonspec.org/数 据的类型值

db.colls.find(  a :  $type : 2   ); // 匹配a为string类型数据
db.colls.find(  a :  $type : 16   ); // 匹配a为int类型数据

使用正则表达式匹配

db.colls.find(  name : /acme.*corp/i  );//类似于SQL中like

内嵌对象查询

db.colls.find(  “author.name” : “joe”  );

1.3.3版本及更高版本包含$not查询

db.colls.find(  name :  $not : /acme.*corp/i   );
db.colls.find(  a :  $not :  $mod : [ 10 , 1 ]    );

sort()排序

db.colls.find().sort(  ts : -1  );//1为升序2为降序

limit()对限制查询数据返回个数

db.colls.find().limit(10)

skip()跳过某些数据

db.colls.find().skip(10)

snapshot()快照保证没有重复数据返回或对象丢失

count()统计查询对象个数

db.students.find(‘address.state' : ‘CA').count();//效率较高
db.students.find(‘address.state' : ‘CA').toArray().length;//效率很低

group()对查询结果分组和SQL中group by函数类似
distinct()返回不重复值

转自https://www.cnblogs.com/qlqwjy/p/8628398.html

以上是关于mongodb与mysql命令对比的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB命令及SQL语法对比

MongoDB与MySQL效率对比

强强对比 MongoDB与MySQL

MongoDB与MySQL效率对比

Mongodb 与 MySQL对比

Mongodb 与 MySQL对比