服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - MongoDB常用命令小结

MongoDB常用命令小结

2020-04-21 15:01MongoDB教程网 MongoDB

这篇文章主要介绍了MongoDB的一些常用命令,学习与使用MongoDB数据库的朋友可以参考下

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':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
#根据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':'ixigua@sina.com'}).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
}
})

延伸 · 阅读

精彩推荐
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19