MongoDB常用命令
来源:互联网 发布:ubuntu 怎么进入u盘 编辑:程序博客网 时间:2024/04/30 06:53
首先我们先安装这个数据库,你可以使用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 commanddb.copyDatabase(fromdb, todb, fromhost)db.createCollection(name, { size : ..., capped : ..., max : ... } )db.currentOp() displays the current operation in the dbdb.dropDatabase()db.eval(func, args) run code server-sidedb.getCollection(cname) same as db['cname'] or db.cnamedb.getCollectionNames()db.getLastError() - just returns the err msg stringdb.getLastErrorObj() - return full status objectdb.getMongo() get the server connection objectdb.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pairdb.getName()db.getPrevError()db.getProfilingLevel() - deprecateddb.getProfilingStatus() - returns if profiling is on and slow threshold db.getReplicationInfo()db.getSiblingDB(name) get the db at the same server as this onedb.isMaster() check replica primary statusdb.killOp(opid) kills the current operation in the dbdb.listCommands() lists all the db commandsdb.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=alldb.shutdownServer()db.stats()db.version() current version of the serverdb.getMongo().setSlaveOk() allow queries on a replication slave serverdb.fsyncLock() flush data to disk and lock server for backupsdb.fsyncUnock() unlocks server following a db.fsyncLock()
> db.douban.help()DBCollection helpdb.douban.find().help() - show DBCursor helpdb.douban.count()db.douban.dataSize()db.douban.distinct( key ) - eg. db.douban.distinct( 'x' )db.douban.drop() drop the collectiondb.douban.dropIndex(name)db.douban.dropIndexes()db.douban.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDupsdb.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 collectiondb.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 namedb.douban.save(obj)db.douban.stats()db.douban.storageSize() - includes free space allocated to this collectiondb.douban.totalIndexSize() - size in bytes of all the indexesdb.douban.totalSize() - storage allocated for all data and indexesdb.douban.update(query, object[, upsert_bool, multi_bool])db.douban.validate( <full> ) - SLOWdb.douban.getShardVersion() - only for use with shardingdb.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 和 anddb.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}})#ordb.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 = 1000db.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常用命令
- MongoDB常用命令
- MongoDB常用命令
- MongoDB常用命令
- Mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb 常用命令
- mongodb常用命令
- MongoDB 常用命令
- MongoDB 常用命令
- mongodb 常用命令
- mongodb常用命令
- mongodb常用命令
- MongoDB 常用命令
- [pgsql]pgsql数据库时间函数
- Android 基于Netty的消息推送方案之字符串的接收和发送(三)
- 查看可执行程序的依赖库
- Js获取当前日期时间及其它操作
- 不使用UIImagePickerControllerOriginalImage获取相册图片
- MongoDB常用命令
- 九度1012畅通工程(并查集)
- Android 基于Netty的消息推送方案之对象的传递(四)
- Oracle函数-计算时间跨度
- SQL Service2008安装过程中遇到的问题及解决办法
- 【hbase】HBase条件查询实现过程解析(多条件查询)
- Google 如何逐步牢牢控制 Android 开源系统
- qt中关于设置颜色
- Android或Linux调试addr2line工具锁定命令的使用