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, lt,lte, g t , gt, gt,gte
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查询 type查询type值为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命令对比的主要内容,如果未能解决你的问题,请参考以下文章