MongoDB运用总结ITeye - 千亿集团

MongoDB运用总结ITeye

2019-01-10 15:34:57 | 作者: 冰夏 | 标签: 文档,查询,条件 | 浏览: 409

   1.下载装置

下载地址:

在这我用的是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 

 保存

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副本集群 转载自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    MongoDB运用总结ITeye

    文档,查询,条件
  • 2

    exceptionITeye

    成果,形似,有点
  • 3
  • 4

    mysql的count函数优化ITeye

    索引,优化,情况
  • 5
  • 6

    DB2锁机制ITeye

    机制,程序,数据
  • 7

    oracle功能优化总结ITeye

    索引,视图,优化
  • 8

    oracle存储进程ITeye

    存储,进程,数据
  • 9

    Oracle中rownum、rowid、rowITeye

    相同,记载,排名
  • 10