MongoDB Quick Start


  • 安装
  • 使用
  • Python用法
  • Java用法

安装

1 下载

OSX:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.10.tgz

Linux:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.10.tgz

https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.4.10.tgz

2 解压

tar -zxvf mongodb-linux-x86_64-amazon-3.4.10.tgz

解压后建议移动到usr/local/下

mv mongodb-linux-x86_64-amazon-3.4.10 mongo
sudo mv mongo /usr/local/

3 创建配置文件

配置文件用于配置MongoDB的一些启动参数,常用的参数如下:

# 数据库数据存放目录(可以设置你喜欢的任何目录)
dbpath = /Users/wukong/data/db
# 日志存放路径(可以设置你喜欢的任何目录)
logpath=/Users/wukong/logs/mongo/mongodb.log
# 以追加方式记录日志
logappend = true
# 端口号
port = 27017
# 以后台方式运行进程
fork = true
# 开启用户认证(首次建议将auth选项设置成false, 以便无密码进行登录)
auth = true

将以上内容保存成 mongo.conf文件 (存放在/usr/local/mongo/)

4 启动MongoDB 服务

cd /usr/local/mongo/
# 指定配置文件进行启动
sudo ./bin/mongod -f  ./mongo.conf

执行 以上命令后,mongodb将以守护进程的形式在后台运行
通过以下命令可以查看运行状态:

ps aux | grep mongo
看到下面的结果,说明运行成功
root               500   0.3  0.1  3262944   7004   ??  S    10:38下午   5:47.93 ./bin/mongod -f mongo.conf

5 停止MongoDB 服务

sudo kill -2 {mongoDB运行的进行号}

使用

1 简单使用

终端执行
/usr/local/mongo/bin/mongo
进入mongo客户端命令行

常用命令

# 查看数据库
show dbs
# 选择数据库(如果没有,则直接创建)
use test
# 查看当前数据库
db
# 查看当前数据库指定collection的数据数量
db.shop.count()
# 查询
db.shop.find({'id': 5})
db.shop.findOne({'id': 5})
# 插入
db.shop.insert({'name': 'wukong', 'type': 'handsome boy'})
# 更新
# 将id为5的数据,name字段设置为mm
db.shop.update({'id':'5', {$set: {'name' : 'mm'}}})
# 删除
# 删除id为567的数据
db.shop.remove({'id': '567'})
# distinct
db.shop.distinct('shop_id')

2 权限设置

— 创建管理员账户
user admin
db.createUser( { user: "myadmin", pwd: "myadmin1234", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

— 创建超级用户root
use admin
db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } );

— 创建普通用户
use monster
db.createUser( { user: "wukong", pwd: "wukong1234", roles: [ { role: "readWrite", db: "monster" } ] } )

3 数据库备份与恢复

备份
sudo ./mongodump -u 'name' -p 'password' -d dbname -o ./

恢复
sudo mongorestore -h dbhost -d dbname --dir dbdirectory

# 更多选项
mongodump --help

Python用法

python 需要安装 pymongo包

sudo pip install pymongo

具体使用方法:

# 创建MongoClient对象
client = MongoClient(host=DB_CONFIG['dbURL'],
                     port=DB_CONFIG['dbPort'],
                     username=DB_CONFIG['dbUser'],
                     password=DB_CONFIG['dbPassword'],
                     authSource=DB_CONFIG['dbName'])

# 获取数据库
db = client.get_database(name=DB_CONFIG['dbName'])

# 获取colletion
col = db.get_collection(name=DB_CONFIG['dbCollectionName'])

# 插入数据
collection.insert_many(data_array)
collection.insert_one(value)

# 查询数据
self.collection.find_one(query)
self.collection.find(query)

# 删除数据
collection.delete_one(query)
collection.delete_many(query)

# 更新数据
collection.update_many(query, value)
collection.update_one(query, value)

# 获取数量
self.collection.count(query)

# 关闭数据库
client.close()

Java用法

Java 建议使用mongodb的驱动包进行编程

<dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.2.2</version>
</dependency>

具体使用方法与Python套路一致:

// 端口, URL
ServerAddress serverAddress = new ServerAddress(MONGO_URL, MONGO_PORT);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);

//鉴权认证
MongoCredential credential = MongoCredential.createCredential(MONGO_USERNAME, MONGO_DATABASE, MONGO_PASSWORD.toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);

//创建client对象
MongoClient mongoClient = new MongoClient(addrs, credentials);

//获取数据库对象
MongoDatabase mongoDatabase = mongoClient.getDatabase(MONGO_DATABASE);

//获取集合对象
MongoCollection<Document> collection = mongoDatabase.getCollection(MONGO_COLLECTION);

//查找数据
String queryJson = "{'id' : '1232'}";
BasicDBObject queryObject = BasicDBObject.parse(queryJson);
FindIterable<Document> findIterable = collection.find(queryObject);
MongoCursor<Document> mongoCursor = findIterable.iterator();

while (mongoCursor.hasNext()) {
   Document document = mongoCursor.next();
   .....
   break;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容