侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

MongoDB常用命令小结

数据库  /  管理员 发布于 5年前   245

MongoDB常用命令:

超级用户相关:

use admin
#增加或修改用户密码
db.addUser(ixigua,'pwd')
#查看用户列表
db.system.users.find()
#用户认证
db.auth(ixigua,'pwd')
#删除用户
db.removeUser('mongodb')
#查看所有用户
show users
#查看所有数据库
show dbs
#查看所有的collection
show collections
#查看各collection的状态
db.printCollectionStats()
#查看主从复制状态
db.printReplicationInfo()
#修复数据库
db.repairDatabase()
#设置记录profiling,0=off 1=slow 2=all
db.setProfilingLevel(1)
#查看profiling
show profile
#拷贝数据库
db.copyDatabase('mail_addr','mail_addr_tmp')
#删除collection
db.mail_addr.drop()
#删除当前的数据库
db.dropDatabase()


客户端连接:
/usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'


增删改:
#存储嵌套的对象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
#存储数组对象
db.user_addr.save({'Uid':'[email protected]','Al':['[email protected]','[email protected]']})
#根据query条件修改,如果不存在则插入,允许修改多条记录
db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
#删除yy=5的记录
db.foo.remove({'yy':5})
#删除所有的记录
db.foo.remove()


索引:
#增加索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
#索引子对象
db.user_addr.ensureIndex({'Al.Em': 1})
#查看索引信息
db.deliver_status.getIndexes()
db.deliver_status.getIndexKeys()
#根据索引名删除索引
db.user_addr.dropIndex('Al.Em_1')


查询:
#查找所有
db.foo.find()
#查找一条记录
db.foo.findOne()
#根据条件检索10条记录
db.foo.find({'msg':'Hello 1'}).limit(10)
#sort排序
db.deliver_status.find({'From':'[email protected]'}).sort({'Dt',-1})
db.deliver_status.find().sort({'Ct':-1}).limit(1)
#count操作
db.user_addr.count()
#distinct操作
db.foo.distinct('msg')
#>操作
db.foo.find({"timestamp": {"$gte" : 2}})
#子对象的查找
db.foo.find({'address.city':'beijing'})


管理:
#查看collection数据的大小
db.deliver_status.dataSize()
#查看colleciont状态
db.deliver_status.stats()
#查询所有索引的大小
db.deliver_status.totalIndexSize()
#查看当前所使用的数据库
db

作者 mahout

以下是其他网友的补充:

库操作
show dbs 查看系统中的数据库列表
注:数据库中必须有内容才会显示
db = db.getSiblingDB("<数据库名>")
or
use <数据库名> 
切换当前数据库
注:如果数据库不存在,则创建数据库
任何一种方法都是可以的,并把db值设置为指定的数据库,然后可以使用db来管理新的当前数据库。
 
db.dropDatabase() 删除当前数据库
注:删除当前数据库,然后在不改变当前数据库的情况下使用句柄创建一个集合,则被删的数据库会被重新创建。
 
db.copyDatabase("<当前数据库名>", "<备份库名>", [hostname])
复制数据库,创建除名称外一模一样的数据库
注:可选的hostname参数指定当前库MongDB服务器主机名。
 
db 显示当前数据库

集合操作
show collections 查看当前数据库中包含的集合的名单
 
db.createCollection("<集合名>", {<options>}) 创建集合
注:参数二可选对象
属性          说明
capped         布尔,如果为true,表示该集合是一个封顶集合,它不会增长到比size属性指定最大规模更大。默认:false
autoIndexID     布尔,如果为true,表明自动为添加到集合的每个文档创建一个_id字段并实现该字段上索引。这对封顶集合应该是false。默认true
size          字节单位大小,用于封顶集合。最旧的文件被删除,以腾出空间给新文件
max         在封顶集合中允许的最大文档数。最旧的文件被删除,以腾出空间给新文件

db.<集合名>.drop()
or
coll = db.getCollection("<集合名>")
coll.drop() 删除集合
 
db.<集合名>.find()
or
coll = db.getCollection("<集合名>")
coll.find(query) 在集合中查看文档
注:可选query参数指定包含字段和值的查询文档与集合中的文档匹配,并返回匹配内容。例:coll.find({speed:"120mph"})
 
db.<集合名>.insert({}) 
or
db.<集合名>.save({})
在集合中插入文档数据(如果集合不存在会被创建,save也是)
将同类数据视为一个集合
集合中数据具体相似的属性
集合是一个容器,内部可放置N多数据
可以对这些数据进行筛选、排序
db.<集合名>.remove({筛选条件},false)
从集合中删除文档 参数1:筛选条件。参数2:可选参数,是否单行删除,默认false。
 
db.<集合名>.save({ "_id" : ObjectId("57e26b294a655f35e13d6f5d"), "name" : "hung", "age" : 18})
or
db.<集合名>.update( {筛选条件}, {$set:{"name":"jin","up":true}},
{upsert:true,multi:true}) 更新集合中的文档
参数一:更新文档的条件
参数二:更新时使用的更新运算符,以及更新属性
常用运算符:$inc递归该字段值。$set设置字段值。$push将一个条目推送数组。$rename重命名字段。等・・
参数三:可选,两个属性。multi(匹配到的所有文档更新,默认false只更新第一条)和upsert(若没有找到匹配项,创建一个,默认false不创建),布尔。
*******************************************************************
db.<集合名>.pretty() 整齐的显示查询文档
db.<集合名>.find().sort({属性:1/-1}) 按指定的属性排序
1是正序,-1:倒序
db.<集合名>.find().limit(n) 显示前n条数据
db.<集合名>.find().skip(n) 跳过前n条数据
条件查找
db.<集合名>.find({属性:value}) 属性==值
db.<集合名>.find({属性:{运算符:value}})
运算符:
$lt       小于
$lte     小于等于
$gt      大于
$gte    大于等于
$ne     不等于
对同一属性使用两个运算符
db.<集合名>.find({ 属性: { 运算符1:value, 运算符2:value } })
如:db.<集合名>.find({ age: { $gt: 6, $lt: 16 } })
对不同属性同时限定条件(两个条件同时成立)
db.<集合名>.find( {属性1: { 运算符:value }, 属性2: { 运算符:value }})
或条件
db.<集合名>.find({
$or: [
{属性: value},
{属性: value},
{属性: value}
]
})
使用函数筛选数据
db.<集合名>.find({
$where: function(){
return true/false
}
})


  • 上一条:
    plsql和tsql常用函数比对
    下一条:
    MongoDB整库备份与还原以及单个collection备份、恢复方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客