解压安装包
tar -xzvf mongodb-linux-x86_64-ubuntu1404-3.2.8.tgz
启动MongoDB方法一:
bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log --fork
或者
bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log &
--dbpath执行数据库存放路径(默认是/data/db)
--logpath日志文件存放路径
--fork是以Daemon进程方式运行
注意:如果指定--fork参数,必须指定--logpaht日志文件路径
启动MongoDB方法二:
新建一个配置文件conf/mongodb.conf,添加以下内容
dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00
logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log
bind_ip=192.168.10.20
port=27017
fork=true
然后执行
mongodb-3.2.8$ bin/mongod -f conf/mongodb.conf
开机启动,修改/etc/rc.d/rc.local
/home/hadoop/Software/mongodb-3.2.8/bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log --fork
或者
/home/hadoop/Software/mongodb-3.2.8/bin/mongod –config /home/hadoop/Software/mongodb-3.2.8/bin/mongodb.conf
进入客户端Shell
/home/hadoop/Software/mongodb-3.2.8/bin/mongo
新建用户与认证
>use admin
>db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
>db.auth("root", "123456")
启动方式需要修改为
/home/hadoop/Software/mongodb-3.2.8/bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/data/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log -auth --fork
或修改conf/mongodb.conf文件,添加
auth=true
Java API 操作
import java.util.ArrayList;
import java.util.List;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
public class MongoDBClient {
private MongoClient mongoClient = null;
private MongoDBClient() {
initMongoClient();
}
private static class MongoDBClientHolder {
private static final MongoDBClient INSTANCE = new MongoDBClient();
}
public static final MongoDBClient getInstance() {
return MongoDBClientHolder.INSTANCE;
}
private void initMongoClient() {
List<ServerAddress> serverAddressList = new ArrayList<ServerAddress>();
ServerAddress serverAddress = new ServerAddress("192.168.0.103", 27017);
serverAddressList.add(serverAddress);
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
MongoCredential credential = MongoCredential.createCredential(
"root", "admin", "123456".toCharArray());
credentials.add(credential);
mongoClient = new MongoClient(serverAddressList, credentials);
}
public MongoClient getClient() {
return mongoClient;
}
}
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.bulk.BulkWriteResult;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.DeleteOneModel;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.model.WriteModel;
import com.mongodb.client.result.UpdateResult;
public class MongoDBClientTest {
@Test
public void insertCollection() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
database.createCollection("test");
mongoClient.close();
}
@Test
public void insertOne() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
Document document1 = new Document();
document1.append("id", 1).append("username", "zhangsan").append("password", "zhangsan");
collection.insertOne(document1);
Document document2 = new Document();
document2.put("id", 2);
document2.put("username", "lisi");
document2.put("password", "lisi");
collection.insertOne(document2);
mongoClient.close();
}
@Test
public void insertMany() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
List<Document> documents = new ArrayList<Document>();
Document document = null;
for (int i = 10; i < 20; i++) {
document = new Document();
document.append("id", i).append("username", "lisi" + i).append("password", "lisi" + i);
documents.add(document);
}
collection.insertMany(documents);
mongoClient.close();
}
@Test
public void updateOne() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
Document filter = new Document();
filter.put("id", 4);
filter.put("username", "lisi");
filter.put("password", "lisi");
Document updateContent = new Document();
updateContent.put("username", "lisinew");
updateContent.put("password", "lisinew");
BasicDBObject update = new BasicDBObject("$set", updateContent);
UpdateResult result = collection.updateOne(filter, update);
System.out.println(result.wasAcknowledged());
System.out.println(result.getMatchedCount());
System.out.println(result.getModifiedCount());
}
@Test
public void updateMany() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
Document filter = new Document();
filter.put("username", "zhangsan");
Document updateContent = new Document();
updateContent.put("username", "zhangsanupdate");
updateContent.put("password", "zhangsanupdate");
Document update = new Document("$set", updateContent);
UpdateResult result = collection.updateMany(filter, update);
System.out.println(result.wasAcknowledged());
System.out.println(result.getMatchedCount());
System.out.println(result.getModifiedCount());
}
@Test
public void delete() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
Document filter = new Document();
filter.put("id", 2);
Document deleteDocuemnt = collection.findOneAndDelete(filter);
System.out.println(deleteDocuemnt);
}
@Test
public void findByFilter() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
Document filter = new Document();
filter.put("id", 1);
FindIterable<Document> docs = collection.find(filter);
MongoCursor<Document> iterator = docs.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
mongoClient.close();
}
@Test
public void findAll() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
FindIterable<Document> docs = collection.find();
MongoCursor<Document> iterator = docs.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
mongoClient.close();
}
@Test
public void findAllWithPagination() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
FindIterable<Document> docs = collection.find().skip(5).limit(5);
MongoCursor<Document> iterator = docs.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
System.out.println(doc);
}
mongoClient.close();
}
@Test
public void bulk() {
MongoClient mongoClient = MongoDBClient.getInstance().getClient();
MongoDatabase database = mongoClient.getDatabase("admin");
MongoCollection<Document> collection = database.getCollection("test");
List<WriteModel<Document>> requests = new ArrayList<WriteModel<Document>>();
Document insertOneDoc = new Document();
insertOneDoc.append("id", 6).append("username", "zhangsan6").append("password", "zhangsan6");
InsertOneModel<Document> insertOne = new InsertOneModel<Document>(insertOneDoc);
requests.add(insertOne);
Document filter = new Document();
filter.put("id", 4);
Document updateContent = new Document();
updateContent.put("username", "lisibulkupdate");
updateContent.put("password", "lisibulkupdate");
Document update = new Document("$set", updateContent);
UpdateOneModel<Document> updateOne = new UpdateOneModel<Document>(filter, update);
requests.add(updateOne);
Document deleteFilter = new Document();
deleteFilter.put("id", 4);
DeleteOneModel<Document> deleteOne = new DeleteOneModel<Document>(deleteFilter);
requests.add(deleteOne);
BulkWriteResult bwr = collection.bulkWrite(requests);
System.out.println(bwr.getMatchedCount());
System.out.println(bwr.getInsertedCount());
System.out.println(bwr.getModifiedCount());
System.out.println(bwr.getDeletedCount());
mongoClient.close();
}
}