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

时间: 2024-10-28 22:22:57

MongoDB经常使用命令的相关文章

前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供数据库来存储数据,目前在各大培训机构都会有1天左右的课程进行讲解,同时在实际来发中我们有存储数据和文件的需求,我们需要了解后台数据存储和提供的数据接口,以及如何获取数据,解析数据,也就是我们常说的前后端交互,数据访问等操作,首先我们来启动mongdb服务器. mongodb服务器启动的命令窗口方法:

MongoDB基本管理命令

这篇MongoDB基本管理命令比较全面,转载保留,原文 目录 MongoDB命令帮助系统 基本命令及实例 一基本命令 二基本DDL和DML 三启动与终止 四安全管理 五数据备份恢复与迁移管理 六远程连接管理 MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行.下面通过熟悉MongoDB的基本管理命令,来了

解决mongodb设备mongod命令不是内部或外部的命令

1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现下面文件 在安装的盘C:下建立mongodb目录,拷贝bin目录到该目录下,这样就相当于安装了mongodb的相关命令. 为了启动mongodb方便,将mongod.exe路径增加环境变量,电脑->属性->高级系统设置->环境变量,在path里增加路径: 这样在命令行不论什么地方都能用到mongod命令. 2:建立数据文件及启动 然后在D盘新建一个mongodb

Mongodb数据导出命令mongoexport和导入命令mongoimport介绍

转载:http://blog.csdn.net/rangqiwei/article/details/15816013 一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指定导出的数据项,也可以根据指定的条件导出数据.mongoexport具体用法如下所示: Shell代码   [[email protected] mongodb]# ./bin/mongoexport --help Ex

mongodb与mysql命令对比

我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. 关系型数据库一般是由数据库(database).表(table).记录(record)三个层次概念组成.而非关系型数据库mongodb是由数据库(database).集合(collection).文档对象(document)三个层次组成.mongodb对于关系型数据库里的表,没有行和列的关系概念,这体现了模式的自由特点. 语法命令如下列表格所示 MySQL MongoDB

mongoDB索引相关命令总结

一.在集合中文档的某个键上面建立索引: 1.我们知道如果索引使用的得当,会大幅提升查询速度,而如果使用不当有可能会使整个操作性能下降所以在建立索引的时候要考虑如下几点: (1).会做什么样的查询,哪些键需要建立索引 (2).每个键的索引方向是怎么样的 (3).如何应对扩展,怎么排序键的方向,使更多常用的数据保存在内存中 2.这里注意一下,建立索引的时候可以使用 1,-1 建立不同方向的索引 3.使用ensureIndex() 在指定的键上创建索引 4.建立普通索引:使用 ensureIndex(

mongodb常见管理命令

----------1.复制数据库 wind:PRIMARY> show dbs; jinri 0.078GB local 1.078GB test 0.078GB wind 0.078GB wind:PRIMARY> use admin; switched to db admin db.runCommand( {copydb : 1, fromhost : "localhost", fromdb : "wind", todb : "snow&

MongoDB Shell 常用命令

MongoDB 是一款非常热门的NoSQL 数据库管理系统,官方下载地址是:MongoDB, 我在LocalHost安装的是 Enterprise Server 版本,默认安装文件目录是:C:\Program Files\MongoDB\Server\3.2\bin,点击 Windows+R,输入cmd,启动Command Prompt,进入到安装目录 每次打开Command Prompt都需要进入到MongoDB的安装目录十分麻烦,可以修改Computer的Environment Variab

linux下mongodb的终端命令 建集合、插入、删除、修改、查询

  客户端: 连接服务器: mongo 查看参数: mongo --help 退出mongo服务: exit 或 ctr + c 查看当前使用数据库(登录后默认使用test数据库): db 查看所有数据库(物理真实创建出来的数据库): show dbs 切换数据库(use不存在的库会在内存中临时建库,之后创建集合文件会自动在物理上创建这个数据库): use 库名 删除当前使用的数据库(如果数据库不存在就什么也不做): db.dropDatabase() 集合命令: 创建集合(在使用的库里): d