MongoDB经常使用命令
首先我们先安装这个数据库。你能够使用windows或者linux,但推荐使用的是linux,我使用的是ubuntu12.04.在下方的网址中共能够下载,基本都是64位的系统。
假设位linux系统也能够使用命令行安装,我就是使用sudo apt-get install mongodb。
https://www.mongodb.org/downloads
MongoDB 由 databases 组成,databases 由 collections 组成,collections 由documents(相当于行)组成,而 documents 有 fields(相当于列)组成。
help
最開始应该介绍的就是help函数。学习一个东西最好的文档就是官方文档。以下我会给出几个指令的运行过程。最主要的形式就是db.help(),也能够在中间加上数据库的名称如db.douban.help()。
> db.help()
DB methods:
db.addUser(username, password[, readOnly=false])
db.auth(username, password)
db.cloneDatabase(fromhost)
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb, todb, fromhost)
db.createCollection(name, { size : ..., capped : ..., max : ... } )
db.currentOp() displays the current operation in the db
db.dropDatabase()
db.eval(func, args) run code server-side
db.getCollection(cname) same as db['cname'] or db.cname
db.getCollectionNames()
db.getLastError() - just returns the err msg string
db.getLastErrorObj() - return full status object
db.getMongo() get the server connection object
db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair
db.getName()
db.getPrevError()
db.getProfilingLevel() - deprecated
db.getProfilingStatus() - returns if profiling is on and slow threshold
db.getReplicationInfo()
db.getSiblingDB(name) get the db at the same server as this one
db.isMaster() check replica primary status
db.killOp(opid) kills the current operation in the db
db.listCommands() lists all the db commands
db.logout()
db.printCollectionStats()
db.printReplicationInfo()
db.printSlaveReplicationInfo()
db.printShardingStatus()
db.removeUser(username)
db.repairDatabase()
db.resetError()
db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into { cmdObj : 1 }
db.serverStatus()
db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all
db.shutdownServer()
db.stats()
db.version() current version of the server
db.getMongo().setSlaveOk() allow queries on a replication slave server
db.fsyncLock() flush data to disk and lock server for backups
db.fsyncUnock() unlocks server following a db.fsyncLock()
> db.douban.help()
DBCollection help
db.douban.find().help() - show DBCursor help
db.douban.count()
db.douban.dataSize()
db.douban.distinct( key ) - eg. db.douban.distinct( 'x' )
db.douban.drop() drop the collection
db.douban.dropIndex(name)
db.douban.dropIndexes()
db.douban.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups
db.douban.reIndex()
db.douban.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
e.g. db.douban.find( {x:77} , {name:1, x:1} )
db.douban.find(...).count()
db.douban.find(...).limit(n)
db.douban.find(...).skip(n)
db.douban.find(...).sort(...)
db.douban.findOne([query])
db.douban.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )
db.douban.getDB() get DB object associated with collection
db.douban.getIndexes()
db.douban.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )
db.douban.mapReduce( mapFunction , reduceFunction , <optional params> )
db.douban.remove(query)
db.douban.renameCollection( newName , <dropTarget> ) renames the collection.
db.douban.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name
db.douban.save(obj)
db.douban.stats()
db.douban.storageSize() - includes free space allocated to this collection
db.douban.totalIndexSize() - size in bytes of all the indexes
db.douban.totalSize() - storage allocated for all data and indexes
db.douban.update(query, object[, upsert_bool, multi_bool])
db.douban.validate( <full> ) - SLOW
db.douban.getShardVersion() - only for use with sharding
db.douban.getShardDistribution() - prints statistics about data distribution in the cluster
use
use deng能够用来创建 deng,不用操心 deng 不会创建,当创建第一个 collection 时,deng会自己主动创建。
insert
db.unicorns.insert({name: 'demo', sex: 'm', weight: 70}),插入一个数据 collection 为 unicorns。使 用 db.getCollectionNames()
, 会 得 到 unicorns 和 system.indexes 。system.indexes 对每一个 DB 都会有,用于记录 index。
能够通过find函数查看是否插入成功。
find
db.unicorns.find()会看到 document。就相当于mysql中的select * from table; 查看集合中的全部内容。
使用查询
db.unicorns.find({name: 'Dunx'})
其它说明:
$lt, $lte, $gt, $gte and $ne 分别表示小于、小于等于、大于、大于等于、不等于
db.unicorns.find({gender: {$ne: 'f'}, weight: {$gte: 701}}) $exists 用于表示 field 是否存在
db.unicorns.find({vampires: {$exists: false}}) or 和 and
db.unicorns.find({gender: 'f', $or: [{loves: 'apple'}, {loves: 'orange'}, {weight: {$lt: 500}}]})
db.unicorns.find(null, {name: 1})
仅仅返回 name 这个 field,详细例如以下所看到的:
> db.unicorns.find(null, {name: 1})
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cf7"), "name" : "Aurora" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cf6"), "name" : "Horny" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cf8"), "name" : "Unicrom" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cf9"), "name" : "Roooooodles" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cfa"), "name" : "Solnara" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cfb"), "name" : "Ayna" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cfc"), "name" : "Kenny" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cfd"), "name" : "Raleigh" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cfe"), "name" : "Leia" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081cff"), "name" : "Pilot" }
{ "_id" : ObjectId("4da6f22da8d5cd3b72081d00"), "name" : "Nimue" }
{ "_id" : ObjectId("4da6f231a8d5cd3b72081d01"), "name" : "Dunx" }
> db.unicorns.find(null, {name: 1,_id:0})
{ "name" : "Aurora" }
{ "name" : "Horny" }
{ "name" : "Unicrom" }
{ "name" : "Roooooodles" }
{ "name" : "Solnara" }
{ "name" : "Ayna" }
{ "name" : "Kenny" }
{ "name" : "Raleigh" }
{ "name" : "Leia" }
{ "name" : "Pilot" }
{ "name" : "Nimue" }
{ "name" : "Dunx" }
sort
db.unicorns.find().sort({weight: -1})
db.unicorns.find().sort({name: 1, vampires: -1})
#1 表示升序,-1 表示降序 db.unicorns.find().sort({weight: -1}).limit(2).skip(1)
#得到第二个和第三个,limit 规定查询个数,skip 规定忽略几个。
count
db.unicorns.count({vampires: {$gt: 50}})
#or
db.unicorns.find({vampires: {$gt: 50}}).count()
remove
db.unicorns.remove()
如以下所看到的。 > db.unicorns.remove()
> db.unicorns.find()
>
update
db.unicorns.update({name: 'jingdong'}, {weight: 590})
注意:此语句运行后,先查询 name 是'jingdong'的全部数据,然后将 name是'jingdong'的整个 document 都替换为{weight: 590}。
即 db.unicorns.insert({name: 'jingdong', dob: new Date(1979, 7, 18, 18, 44),loves:['apple'], weight: 575, gender: 'm', vampires: 99});整个替换为{weight: 590},最后仅仅剩一个{weight: 590}。
运行$set,不会替换原有数据,因此正确的更新方式例如以下:
db.unicorns.update({name: 'jingdong'}, {$set: {weight: 590}})
db.unicorns.update({name: 'Pilot'}, {$inc: {<span style="font-size:14px;">weight: 500</span>}})
$inc 添加或降低数字 假设原来为500之后会变为1000,由于500+500 = 1000 db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
$push 添加数组元素
$pop 降低数组元素
若存在则更新,否则加入
db.hits.update({page: 'unicorns'}, {$inc: {hits: 1}}, true);
db.hits.find();
使用第三个參数设置是否 true(upset)
,默认是 false
#批量更新
db.unicorns.update({}, {$set: {vaccinated: true }});
db.unicorns.find({vaccinated: true});
不会将全部的数据的 vaccinated 都更新为 true
若将全部的数据的 vaccinated 都更新为 true,则例如以下:
db.unicorns.update({}, {$set: {vaccinated: true }}, false, true);
db.unicorns.find({vaccinated: true});
ensureIndex
创建索引的方式
db.unicorns.ensureIndex({name: 1})
删除索引的方式
db.unicorns.dropIndex({name: 1})
创建独立索引
db.unicorns.ensureIndex({name: 1}, {unique: true})
创建联合索引
db.unicorns.dropIndex({name: 1, vampires: -1})
使用 web 获得 mongoDB 的信息
使用 http://localhost:28017/ 获得 MongoDB 的信息。
数据备份和恢复
使用 mongodump备份数据库
mongodump
使用 mongorestore恢复数据库
mongorestore
MongoDB经常使用命令的更多相关文章
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- mongodb与mysql命令对比
mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(col ...
- [整理]MongoDB 经常使用命令总结
MongoDB 经常使用命令总结 简单的的增删改查数据 在查询结果中指定显示或者不显示某个字段 比如,我们希望在 lessons 集合中查找全部数据,可是不希望在返回结果中包括 slides 字段:由 ...
- 解决mongodb设备mongod命令不是内部或外部的命令
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现下面文件 在安装的盘C:下建立mongodb目录,拷贝bin目录到该目录 ...
- MongoDB学习笔记-命令
连接数据库: mongodb://账号:密码@IP/库名 更多方式参考:http://www.runoob.com/mongodb/mongodb-connections.html 命令整理: 名称 ...
- mongodb 常用的命令
mongodb 常用的命令 对数据库的操作,以及登录 1 进入数据库 use admin 2 增加或修改密码 db.addUser('wsc', '123') 3查看用户列表 db.system.us ...
- Mongodb的mongostat命令
Mongodb的mongostat命令可实时(1秒钟刷新一次)显示Mongodb数据库的运行情况,可视为性能监视器. 1.启动命令:authenticationDatabase表示用户认证证书所在的数 ...
- mongodb输错命令后不能删除问题
在用crt连接Linux操作MongoDB时,命令输错了,想删除的时候,却删除不了,原因是crt的配置有问题,解决办法如下 第一步:选项-->会话选项
- 【mongodb】——常用命令大全
MongoDB是NoSQL数据库系统中比较流行的数据库之一.它也是最接近关系型数据库的,一个数据库可以包含多个集合(Collection),类似于关系数据库中的表:而每个集合中可以存储一组由列标识的记 ...
- MongoDB基本管理命令 [转]
MongoDB基本管理命令 linux下配置安装mongodb 10分钟玩转mongoDB 官网安装教程 使用命令行方式连接mongodb: mongo /admin -u用户名 -p密码 --连接 ...
随机推荐
- 【Luogu】P3865ST表模板(ST表)
题目链接 本来准备自己yy一个倍增来着,然而一看要求O1查询就怂了. ST表模板.放上代码. #include<cstdio> #include<cstdlib> #inclu ...
- 【Luogu】P1516青蛙的约会(线性同余方程,扩展欧几里得)
题目链接 定理:对于方程\(ax+by=c\),等价于\(a*x=c(mod b)\),有整数解的充分必要条件是c是gcd(a,b)的整数倍. ——信息学奥赛之数学一本通 避免侵权.哈哈. 两只青蛙跳 ...
- ACM程序设计选修课——1081: 堆(BFS)
1081: 堆 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 26 Solved: 9 Description Input Output Sampl ...
- Vmware error:无法获得 VMCI 驱动程序的版本: 句柄无效。
error:无法获得 VMCI 驱动程序的版本: 句柄无效.驱动程序“vmci.sys”的版本不正确.请尝试重新安装 VMware Workstation.开启模块 DevicePowerOn 的操作 ...
- K大数查询 BZOJ 3110
K大数查询 [问题描述] 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位 ...
- 标准C程序设计七---01
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 转载自csdn http://blog.csdn.net/ithomer/article/details/6035627 Vim的分屏功能
Vim的分屏功能 目录(?)[+] 本篇文章主要教你如何使用 Vim 分屏功能 分屏启动Vim 使用小写的o参数来上下分屏(横向分屏). vim -on file1 file2 ... 使用大写的O参 ...
- 使用 ftrace 调试 Linux 内核,第 3 部分
内核头文件 include/linux/kernel.h 中描述了 ftrace 提供的工具函数的原型,这些函数包括 trace_printk.tracing_on/tracing_off 等.本文通 ...
- Laravel 5.1 简单学习
Laravel 5.1 简单学习 (1)Laravel的nginx配置,不配置或者配置错误,可能会报404或500错误,访问不到页面. location / { try_files $uri $uri ...
- OC-Runtime温故知新
每个java应用程序都有一个runtime类实例,使应用程序能够与其运行的环境相连接.可以通过getRuntime 方法获取当前运行时,应用程序不能自己创建runtime类实例.Runtime 没有构 ...