1.下载安装
下载地址:https://www.mongodb.com/download-center#community
在这我用的是Linux 64-bit legacy x64
安装
切换到下载的目录
tar -zxvf mongodb-linux-x86_64-3.4.1.tgz 解压
mv mongodb-linux-x86_64-3.4.1 /usr/local/mongodb 移动到指定目录
cd /usr/local/mongodb 切换目录
mkdir -p /db 创建目录
mkdir -p /log
cd bin/
./mongod --dbpath /usr/local/mongodb/db/ 指定数据库路径(--dbpath)启动
新开端口测试
cd /usr/local/mongodb/bin 切换目录
./mongo 默认连接到test库,可指定连接,格式:./mongo [user] [pwd] [ip]:[port]/[dbname]
2.创建用户并授权(MongoDB默认无需用户即可操作数据库)
启动数据库后
use admin
db.createUser({user:”root”,pwd:”rootp”,roles:[{role:”root”,db:”admin”}]})
db.auth(“root”,”rootp”)
角色说明(只列出部分):
关闭数据库,重新启动,这次是认证方式启动
./mongod --dbpath /usr/local/mongodb/db/ --auth
客户端再次连接
./mongo
进行命令操作,如:
show dbs
会提示无权限操作
所以,连接方式也是要认证
./mongo -uroot -prootp ip:port/admin
ip就是MongoDB服务器IP地址,port默认是27017
admin是指定要连接的数据库名
再试操作命令,即可正常显示
可查看用户和删除用户
db 查看当前使用的数据库
use admin
db.system.users.find() 查询所有用户
db.system.user.remove({user:”xxx”}) 删除用户xxx
3.Java操作MongoDB
引用jar包
package com.mongo; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.UpdateResult; public class MongoDb { private static MongoCollection<Document> collection; /** * 链接数据库 * @param databaseName 数据库名称 * @param collectionName 集合名称 * @param hostName 主机名 * @param port 端口号 */ public static void connect(String databaseName, String collectionName, String hostName, int port) { @SuppressWarnings("resource") MongoClient client = new MongoClient(hostName, port); MongoDatabase db = client.getDatabase(databaseName); collection = db.getCollection(collectionName); } public static void connect(String databaseName, String collectionName, String hostName, int port, String username, String password) { MongoCredential credential = MongoCredential.createScramSha1Credential(username, databaseName, password.toCharArray()); @SuppressWarnings("resource") MongoClient client = new MongoClient(new ServerAddress(hostName, port), Arrays.asList(credential)); MongoDatabase db = client.getDatabase(databaseName); collection = db.getCollection(collectionName); } /** * 插入一个文档 * @param document 文档 */ public static void insert(Document document) { collection.insertOne(document); } /** * 查询所有文档 * @return 所有文档集合 */ public static List<Document> findAll() { List<Document> results = new ArrayList<Document>(); FindIterable<Document> iterables = collection.find(); MongoCursor<Document> cursor = iterables.iterator(); while (cursor.hasNext()) { results.add(cursor.next()); } return results; } /** * 根据条件查询 * @param filter 查询条件 //注意Bson的几个实现类,BasicDBObject, BsonDocument, * BsonDocumentWrapper, CommandResult, Document, RawBsonDocument * @return 返回集合列表 */ public static List<Document> findBy(Bson filter) { List<Document> results = new ArrayList<Document>(); FindIterable<Document> iterables = collection.find(filter); MongoCursor<Document> cursor = iterables.iterator(); while (cursor.hasNext()) { results.add(cursor.next()); } return results; } /** * 更新查询到的第一个 * @param filter 查询条件 * @param update 更新文档 * @return 更新结果 */ public static UpdateResult updateOne(Bson filter, Bson update) { UpdateResult result = collection.updateOne(filter, update); return result; } /** * 更新查询到的所有的文档 * @param filter 查询条件 * @param update 更新文档 * @return 更新结果 */ public static UpdateResult updateMany(Bson filter, Bson update) { UpdateResult result = collection.updateMany(filter, update); return result; } /** * 更新一个文档, 结果是replacement是新文档,老文档完全被替换 * @param filter 查询条件 * @param replacement 跟新文档 */ public static void replace(Bson filter, Document replacement) { collection.replaceOne(filter, replacement); } /** * 根据条件删除一个文档 * @param filter 查询条件 */ public static void deleteOne(Bson filter) { collection.deleteOne(filter); } /** * 根据条件删除多个文档 * @param filter 查询条件 */ public static void deleteMany(Bson filter) { collection.deleteMany(filter); } }
测试
package com.test; import java.util.List; import org.bson.Document; import org.junit.BeforeClass; import org.junit.Test; import com.mongo.MongoDb; import com.mongodb.client.result.UpdateResult; public class TestMongo { @BeforeClass public static void setUpBeforeClass() throws Exception { try { MongoDb.connect("test", "ht", "xxx", 27017, "testu", "testp"); } catch (Exception e) { e.printStackTrace(); } } @Test public void testInsert() { Document document = new Document(); document.append("name", "test").append("age", 20).append("cell", "167575"); MongoDb.insert(document); } @Test public void testFindAll() { List<Document> results = MongoDb.findAll(); for(Document doc : results){ System.out.println(doc.toJson()); } } @Test public void testFindBy() { Document filter = new Document(); filter.append("name", "张三"); List<Document> results = MongoDb.findBy(filter); for (Document doc : results) { System.out.println(doc.toJson()); } } @Test public void testUpdateOne() { Document filter = new Document(); filter.append("age", 21); //注意update文档里要包含"$set"字段 Document update = new Document(); update.append("$set", new Document("name", "李四")); UpdateResult result = MongoDb.updateOne(filter, update); System.out.println("matched count = " + result.getMatchedCount()); } @Test public void testUpdateMany() { Document filter = new Document(); filter.append("age", 20); Document update = new Document(); update.append("$set", new Document("age", 21)); UpdateResult result = MongoDb.updateMany(filter, update); System.out.println("matched count = " + result.getMatchedCount()); } @Test public void testReplace() { Document filter = new Document(); filter.append("cell", "15803948943"); //注意:更新文档时,不需要使用"$set" Document replacement = new Document(); replacement.append("name", "李四"); replacement.append("age", 21); replacement.append("cell", "15803948943"); MongoDb.replace(filter, replacement); } @Test public void testDeleteOne() { Document filter = new Document(); filter.append("cell", "15803948943"); MongoDb.deleteOne(filter); } @Test public void testDeleteMany() { Document filter = new Document(); filter.append("age", 21); MongoDb.deleteMany(filter); } }
补充:
添加MongoDB服务
cd /usr/local/mongodb
touch mongod.conf 创建文件
添加如下内容:
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
fork=true
auth=true
保存
启动命令参数说明:
cd /etc/rc.d/init.d
touch mongo 创建文件
添加如下内容:
#!/bin/bash #chkconfig: 2345 80 90 #description: mongodb start() { /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongod.conf } stop() { /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongod.conf --shutdown } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac
保存
chmod +x mongo 给该文件添加可执行权限
将命令添加到PATH中
vim /etc/profile
在文件最后添加如下内容:
export PATH=”$PATH:/usr/local/mongodb/bin”
保存
source profile 立即生效
添加服务
chkconfig -add mongo
chkconfig mongo on
service mongo start 启动服务
service mongo stop 关闭服务
因为添加到PATH,所以可在任何目录下直接用客户端连接:
mongo -uroot -prootp ip:port/admin
相关推荐
mongodb 使用总结,包括建库,增删改查的常用操作,数据库引用关系,索引建立和使用
spring mongodb mongodb实例,spring data mongodb 操作实例总结
mongodb总结
MONGODB学习总结入门篇.pdf
mongodb学习总结.docx
MongoDB基础(自己总结不喜勿喷)基础操作,分片,副本集
总结了近段时间我在自学MongoDB时的学习经验和自己的认识,对MongoDB入门的初学者会有很大启发。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
在使用MongoDB做产品原型的过程中,我们总结了MonogDB的一些亮点:使用JSON风格语法,易于掌握和理解:MongoDB使用JSON的变种BSON作为内部存储的格式和语法。针对MongoDB的操作都使用JSON风格语法,客户端提交或接收...
mongodb数据库的学习与总结
mongodb知识点总结, 涉及到mongodb的简单介绍 mongodb相关概念介绍 mongodb的安装(linux) mongodb的启动和连接 mongodb数据库和集合的操作,文档的增删改查相关操作 mongodb索引的建立和删除 mongodb的备份和恢复 ...
mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不同的场合,属Replica set应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂 ...
mongdodb实践总结(中文版),一份工作中常遇到mongodb问题的总结文档
MongoDB 中文档的插入和保存是通过使用 insert 命令来实现的。例如,以下命令将插入一个新的文档: `db.collection.insertOne({name: "John", age: 30})` ### 删除文档 MongoDB 中文档的删除是通过使用 delete ...
MongoDB总结,文件为md 格式 可以利用Typora打开文件,适合想学习非关系数据库的学生或者已经工作的程序员
本文档是本人学习Mongodb时的一些总结资料,主要是说明了Mongodb的基本语法及其简单操作使用,适合刚开始接触学习Mongodb的同仁。
MongoDB安装和使用全过程!windows平台下下载和安装Mongo数据库时总结的文档,分享给大家!
mongoDB初学者参考文件,包括如何安装mongodb数据库,安装服务,简单语句操作。
mongoDB学习 命令 安装 总结 mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结