美文网首页
常用的MongoDB语句

常用的MongoDB语句

作者: 花开半夏fly | 来源:发表于2023-02-16 10:00 被阅读0次

MongoDB语言:

1.按条件查看

db.getCollection('User').find({UserName:"XXX"})

2.判断某个表key是否存在,true为存在,false为不存在

db.getCollection('Member').find({"AddedPermissions":{"$exists":true}})

3.多个条件进行查询

db.getCollection('Group').find({"GroupName.zh":{$regex:"名字"},Classification:"OpenCustomer"})

4.某个字段包含特定的文字

db.getCollection('Group').find({"GroupName.zh":{$regex:"特定文字"}})

5.查询数组里面包含某个字段

db.getCollection('Member').find({AddedPermissions:{$elemMatch:{$eq:"XX"}}})
 

6.按条件计算count

db.getCollection('Group').find({"Country.zh":{$regex:"中国"}}).count()
  1. 按某个条件进行求和
db.getCollection('Group').aggregate([{$group : {_id : "$Country.zh", num_tutorial : {$sum : "$ResidentNumber"}}}])

  1. 修改更新语句
db.getCollection('Job').update({LatestTriggerDate:1583833687399.0},{$set:{LatestTriggerDate:0.0}})

9.等于

db.col.find({"by":"菜鸟教程"}).pretty()

10 小于

db.col.find({"likes":{$lt:50}}).pretty()

11 小于或者等于

db.col.find({"likes":{$lte:50}}).pretty()

12 大于

db.col.find({"likes":{$gt:50}}).pretty()

13 大于或者等于

db.col.find({"likes":{$gte:50}}).pretty()

14 不等于

    db.col.find({"likes":{$ne:50}}).pretty()

15 OR

db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

16、查询所有记录

db.userInfo.find();
  1. 查询去掉后的当前聚集集合的某列的重复数据
db.userInfo.distinct(“name”);

18.字符模糊查询

db.userInfo.find({name: /mongo/});

19.查询制定列数据

db.userInfo.find({}, {name: 1, age: 1});
 
相当于:select name, age from userInfo;
  1. 按条件查询指定列数据
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
 
相当于:select name, age from userInfo where age <25;

  1. 排序
升序:db.userInfo.find().sort({age: 1});

降序:db.userInfo.find().sort({age: -1}); 
  1. 查询前5条数据
db.userInfo.find().limit(5);
 
相当于:select * from userInfo limit 5;

  1. 查询10条以后的数据
db.userInfo.find().skip(10);
 
相当于:select count() from userInfo as total;
 
select from userInfo limit 10,total;
  1. 查询在5-10之间的数据
db.userInfo.find().limit(10).skip(5);
可用于分页,limit是pageSize,skip是第几页pageSize

相当于:select from userInfo limit 5,10;


  1. or 与查询
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
 
相当于:select * from userInfo where age = 22 or age = 25;
  1. 查询第一条数据
db.userInfo.findOne();
 
db.userInfo.find().limit(1);
 
相当于:select * from userInfo limit 1;


  1. 查询某个结果集的记录条数
db.userInfo.find({age: {$gte: 25}}).count();
 
相当于:select count(*) from userInfo where age >= 20;
  1. 查询第一条数据
db.userInfo.findOne();
 
db.userInfo.find().limit(1);
 
相当于:select * from userInfo limit 1;


  1. 查询某个结果集的记录条数
db.userInfo.find({age: {$gte: 25}}).count();
 
相当于:select count(*) from userInfo where age >= 20;
  1. $elemMatch操作符将匹配数组中至少有 1 个元素满足查询条件的文档。
查找AddedPermissions数组中等于NationWideLearnCenter的文档
db.getCollection('Member').find({AddedPermissions:{$elemMatch:{$eq:"NationWideLearnCenter"}}})

29.$eq操作符将匹配数组中至少有 1 个元素满足查询条件的文档。

查找AddedPermissions数组中等于NationWideLearnCenter的文档
db.getCollection('Member').find({AddedPermissions:{$elemMatch:{$eq:"XX X"}}})

30.$eq 匹配等于指定值的值


db.getCollection('test').find({"type": {$eq:"技术"}})

31.$in 匹配数组中指定的任何值


db.getCollection('test').find({"tag": {$in:["A"]}})

32.$regex 匹配与正则表达式规则相符的文档
包含某个字符串

i表示不区分大小写
db.getCollection('Member').find({'SearchName':/XXX/i})

db.getCollection('Member').find({'SearchName':{$regex:'XXX'}})

  1. 连表查询
db.PatientDoctor.aggregate([
{
$lookup: { // 左连接
from: "Patient", // 关联到Patient表
localField: "PatientId", // PatientDoctor 表关联的字段
foreignField: "p8Id", // Patient 表关联的字段
as:"Patients"
}
},
{ $match : {"DoctorDisplayName.zh":"XXX"}},
{ $group: { _id:"$Patients.Gender", num_tutorial: { $sum: 1 } } }
])


  1. type有哪几种查询
查询Schedule里面有哪几种类型的定时任务
db.getCollection('Schedule').aggregate([{$group:{_id:'$ScheduleType'}}])

相关文章

网友评论

      本文标题:常用的MongoDB语句

      本文链接:https://www.haomeiwen.com/subject/dgcukdtx.html