|
MongoDB-SQL语法
可视化软件:Navicat
1. MongoDB-查询
db.getCollection('表名').find({}); db.getCollection('表名').find({"_id":1});
2. MongoDB-NE(NOT EQUAL)查询
db.getCollection('表名').find({"_id":{$ne:1}})
3. MongoDB-IN查询
db.getCollection('表名').find({"_id":{$in:[1,2,3]}});
4. MongoDB-NOT_IN查询
db.getCollection('表名').find({"_id":{$nin:[1,2,3]}})
5. MongoDB-EXISTS查询
db.getCollection('表名').find({"字段名":{$exists:true}});
当boolean为true,$exists匹配包含字段的文档,包括字段值为null的文档。
当boolean为false,$exists返回不包含对应字段的文档。
6. MongoDB-大于小于查询
db.getCollection('表名').find({"_id":{$gt:1}}) (>)---大于---$gt (<)---小于---$lt (>=)---大于等于---$gte (<=)---小于等于---$lte
7. MongoDB-大于小于日期查询
Date方式 db.getCollection('表名').find({"时间字段":{$gte:new Date(2000,1,1)},"时间字段":{$lte:new Date(2030,1,1)}}); ISODate方式 db.getCollection('dictValue').find({"createTime":{$gte:ISODate("2000-01-01T00:00:00Z")},"createTime":{$lte:ISODate("2030-01-01T00:00:00Z")}});
8. MongoDB-模糊匹配
db.表名.find({"字段名": {$regex:'要模糊匹配的字符',$options:'i'}}); $options: '<options>':选项 含义 i===>大小写不敏感 m===>查询匹配中使用了锚,例如^(代表开头)和$(代表结尾),以及匹配n后的字符串 x===>忽视所有空白字符 s===>允许点字符(.)匹配所有的字符,包括换行符
9.分页与排休查询
//条件查排序并分页:1.是升序, -1是降序;2-页码,10-每页条数 db.getCollection('order').find().sort({"payTime":-1}).limit(2,10);
10. MongoDB-修改-所有匹配的数据
db.getCollection('表名').update({"字段名" : "原字段值"},{$set:{"字段名" : "新字段值"}},{multi:true});
11. MongoDB-新增数据
db.getCollection('表名').save({"_id":NumberLong(1)});
12. MongoDB-删除数据
db.getCollection('表名').remove({}); db.getCollection('表名').remove({"_id":1});
13. MongoDB-两个字段比较
常规查询: db.getCollection('表名').find({$expr:{$gt:["$approve_create", "$approve_delete"]}}) 聚合查询: db.getCollection('表名').aggregate({$match:{$expr:{$gt:["$approve_create", "$approve_delete"]}}}) $gt -------- greater than > $gte --------- gt equal >= $lt -------- less than < $lte --------- lt equal <= $ne ----------- not equal != $eq -------- equal =
14.MongoDB-联表查询,查询总数并分页
联表查询总数:
db.getCollection("表名").aggregate([ { "$match" : { "userType" : 4.0 } }, { "$group" : { //分组查询,分组查询后的结果集中只有下面的字段 "_id" : "$userId", //根据userId来分组,分组后userId就是结果集的_id "count" : { "$sum" : "$isDownLoad" }, //分组计算总数 "mobile" : { "$last" : "$mobile" }, "time" : { "$last" : "$inviteTime" }, "userId" : { "$last" : "$userId" }, "userType" : { "$last" : "$userType" } } }, {"$match" : {"count" : { "$gt" : 0.0 }} }, //分组后再过滤筛选,只要总数大于0的 { "$lookup" : { "from" : "联表查询的表名", //和上面过滤筛选出来的结果集进行联表操作 "localField" : "userId", //当前联表的关联字段 "foreignField" : "_id", //上面查询结果的临时表的关联字段 "as" : "user" //给当前联表取别名为user } }, { "$unwind" : { "path" : "$user", "includeArrayIndex" : "1index", "preserveNullAndEmptyArrays" : true } }, { "$match" : {"user.provinceId": {"$eq":"520000"}} }, //联表后在过滤筛选数据 { "$count" : "total" } //查询总数 ])
联表分页查询:
db.getCollection("表名").aggregate([ {"$match" : { "userType" : 4.0 }}, { "$group" : { "_id" : "$userId", "count" : { "$sum" : "$isDownLoad"}, "mobile" : { "$last" : "$mobile" }, "time" : { "$last" : "$inviteTime" }, "userId" : { "$last" : "$userId" }, "userType" : { "$last" : "$userType" } }}, { "$match" : { "count" : { "$gt" : 0.0 }}}, {"$lookup" : { "from" : "联表查询的表名", "localField" : "userId", "foreignField" : "_id", "as" : "lp" } }, { "$unwind" : { "path" : "$lp", "includeArrayIndex" : "1index", "preserveNullAndEmptyArrays" : true } }, { "$match" : { "lp.provinceId" : "520000" , "lp.cityId" : "520100" } }, { "$project": {"mobile" : "$mobile","time":"$time","userId":"$userId","userType":"$userType","count":1,"address":'$lp.address'} }, //最后结果集只需要的字段数据 {"$sort" : { "time" : -1.0 }}, //排序 { "$skip" : 20.0 }, //跳过前面20条数据,从第21条数据开始收集 { "$limit" : 10.0 } //只收集10条数据 ], { "allowDiskUse" : false } );
15.MongoDB-加索引
db.表名.ensureIndex({"字段1":1,"字段2":1,"字段3":1})
来源:https://www.cnblogs.com/luolei0120/p/16408596.html |