MongoDB常用sql指令

1 数据库常用指令

  • show dbs 查看mongoDB所有库
  • use dbName 创建/切换 数据库
  • db.dropDataBase() 删库与跑路,删除当前数据库
  • db.help 查看帮助指令
  • db.stats() 查看当前数据库信息,如collections即集合的数量
  • db.getName() 查看当前数据库名
  • db.getCollectionNames() 列出数据库所有集合的姓名
  • db.version() 查看数据库版本信息
  • db.getMongo() 查看连接地址 //connection to 127.0.0.1:27017

2 Collection集合常用指令

  • db.createCollection(cName,fieldObj) 创建集合,如db.createCollection("collName", {size: 20, capped: true, max: 100});
  • db.getCollection(cName) 拿到数据库.集合名字
  • db.collName.isCapped() 集合是否定容
  • db.getCollectionNames() 显示当前数据库的所有集合
  • db.printCollectionStats() 显示当前数据库下所有集合的状态信息

2.1 集合的增删改

  • db.users.save|insert(fieldObj) 向集合插入记录
  • db.users.insertMany([{name:"111"},{name:"112"},{name:"113"}]) 插入多条数据
  • db.users.remove(queryObj) 删除符合条件的集合记录
  • db.users.update({age:25},{$set:{name:'name'}},false,true) 更新记录 一参代表查询条件,二参代表更新的值,相当于update 后面的set,三参是否将参数2插入到集合中,true(没找到就插入),false(没找到不插入),四参false(只更新到查询到的第一条记录),true(更新查询到的所有记录)

2.2 集合的查询

  • db.CollectionName.find() 查询所有
  • db.Cname.distinct(field) 去重查询,查找某字段去重之后的结果
  • db.Cname.find({age:20}) 根据字段值查询

2.2.1 条件查询、模糊查询

  • db.Cname.find({age:{$lt:20}}) 条件查询,小于
  • db.users.find({age:{$gt:30}}): 条件查询,大于
  • db.users.find({age:{$gte:48}}): 条件查询,大于等于
  • db.users.find({age:{$lte:48}}): 条件查询,小于等于
  • db.users.find({age:{gt:47,lt:50}}) 条件查询,区间之内
  • db.users.find({name:/^t/}) 模糊查询,t开头
  • db.users.find({name:/c$/}) 模糊查询,c结尾
  • db.users.find({name:/s/}) 模糊查询,包含s

2.2.2 查询指定列 排序

  • db.users.find({},{name:1}) 查询结果只包含name列和id列
  • db.users.find({age:{$gt:40}},{name:1,age:1}) 条件查询指定列
  • db.users.find({},{name:1,age:1,_id:0}).sort({age:-1}) 降序条件查询指定列

2.2.3 分页查询

  • db.users.find({},{name:1,age:1,_id:0}).limit(3).skip(2).sort({age:-1}) 分页查询第3-5条数据,按年龄降序排列(注意,会先拿排序结果再分页,而不是拿分页结果再排序)
  • db.users.findOne() 查询第一条数据
  • db.users.find({$or:[{age:25},{age:20}]}) 或查询
  • db.users.find().count() 查询记录数
posted @   IslandZzzz  阅读(500)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示