① java對所有mongodb表進行增刪改查表名怎麼設置
一、MongoDB資料庫參數配置
1、推薦使用mongodb.cfg.properties配置,則在構造MongoDBService對象的時候只需調用無參構造方法即可自動完成配置。
源代碼:(完整項目文件下載鏈接:點擊打開鏈接)
MongoDBServiceImpl.java
public class MongoDBServiceImpl implements MongoDBService {private String dbName;private String collName;private DB db;//有參構造方法,指定資料庫名與集合名public MongoDBServiceImpl(String dbName, String collName) {this.dbName = dbName;this.collName = collName;try {db = getDb();} catch (Throwable e) {e.printStackTrace();}}//無參構造方法,返回配置文件配置的資料庫對象引用,如果配置文件中沒有設置則返回默認資料庫對象引用public MongoDBServiceImpl() {getDb();}/** 獲取資料庫對象,3種情況(優先順序從高到低):*1、構造方法指定2、配置文件指定3、默認資料庫*(情況2、3在MongoDButil中設置)*/public DB getDb() {if (this.db == null) {if (this.dbName == null) {this.db = MongoDBUtil.getDB();} else {this.db = MongoDBUtil.getDBByName(this.dbName);}}return this.db;}/** 獲取集合對象,3種情況(優先順序從高到低):*1、構造方法指定2、配置文件指定3、默認資料庫*(情況2、3在MongoDButil中設置)*/public DBCollection getCollection() {if(this.collName != null){return db.getCollection(this.collName);}else {return MongoDBUtil.getDBCollection();}}public DBObject map2Obj(Map<string, object=""> map) {DBObject obj = new BasicDBObject();if (map.containsKey("class") && map.get("class") instanceof Class)map.remove("class");obj.putAll(map);return obj;}//插入數據public void insert(DBObject obj) {getCollection().insert(obj);}//插入多條數據public void insertBatch(List<dbobject> list) {if (list == null || list.isEmpty()) {return;}List<dbobject> listDB = new ArrayList<dbobject>();for (int i = 0; i < list.size(); i++) {listDB.add(list.get(i));}getCollection().insert(listDB);}//刪除數據public void delete(DBObject obj) {getCollection().remove(obj);}//刪除多條數據public void deleteBatch(List<dbobject> list) {if (list == null || list.isEmpty()) {return;}for (int i = 0; i < list.size(); i++) {getCollection().remove(list.get(i));}}//獲取集合中的數據數量public long getCollectionCount() {return getCollection().getCount();}//查找符合條件的數據數量public long getCount(DBObject obj) {if (obj != null)return getCollection().getCount(obj);return getCollectionCount();}//查找符合條件的數據public List<dbobject> find(DBObject obj) {DBCursor cur = getCollection().find(obj);return DBCursor2list(cur);}//查找符合條件的數據並排序@Overridepublic List<dbobject> find(DBObject query, DBObject sort) {DBCursor cur;if (query != null) {cur = getCollection().find(query);} else {cur = getCollection().find();}if (sort != null) {cur.sort(sort);}return DBCursor2list(cur);}//查找符合條件的數據並排序,規定數據個數@Overridepublic List<dbobject> find(DBObject query, DBObject sort, int start,int limit) {DBCursor cur;if (query != null) {cur = getCollection().find(query);} else {cur = getCollection().find();}if (sort != null) {cur.sort(sort);}if (start == 0) {cur.batchSize(limit);} else {cur.skip(start).limit(limit);}return DBCursor2list(cur);}//將DBCursor轉化為list<dbobject>private List<dbobject> DBCursor2list(DBCursor cur) {List<dbobject> list = new ArrayList<dbobject>();if (cur != null) {list = cur.toArray();}return list;}//更新數據public void update(DBObject setFields, DBObject whereFields) {getCollection().updateMulti(whereFields, setFields);}//查詢集合中所有數據public List<dbobject> findAll() {DBCursor cur = getCollection().find();List<dbobject> list = new ArrayList<dbobject>();if (cur != null) {list = cur.toArray();}return list;}//由ID獲取數據public DBObject getById(String id) {DBObject obj = new BasicDBObject();obj.put("_id", new ObjectId(id));DBObject result = getCollection().findOne(obj);return result;}public String getDbName() {return dbName;}public void setDbName(String dbName) {this.dbName = dbName;this.db = MongoDBUtil.getDBByName(this.dbName);}public String getCollName() {return collName;}public void setCollName(String collName) {this.collName = collName;}@Overridepublic void printListDBObj(List<dbobject> list) {// TODO Auto-generated method stubfor(DBObject dbObject: list){System.out.println(dbObject);}}}</dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></dbobject></string,>MongoDBUtil.java
② python中mongodb怎麼連接其他伺服器的資料庫
對於mongo的操作,先安裝mongodb的python擴展,在你的命令行窗口上輸入:pip install pymongo,下面是例子,按需要修改
from pymongo import MongoClientimport timemongo_uri_auth = 'mongodb://user:password@localhost:27017/'#mongo有要驗證的話請自行替換user和passwordmongo_uri_no_auth = 'mongodb://localhost:27017/' #mongo沒有賬號密碼驗證的時候用這個database_name = 'request_db' # 你要連接的資料庫名,自行替換你需要的庫名table_name = 'request_tb' #你要查詢的表名,請自行替換你需要的表名client = MongoClient(mongo_uri_no_auth)#創建了與mongodb的連接db = client[database_name]table = db[table_name] #獲取資料庫中表的游標#你要插入的數據insert_data = {"name": "Mike", "grade": "two", "age": 12, "sex": "man"}table..insert_one(insert_data ) #插入一條數據#查詢數據name為Mike的記錄record = table.find_one({"name": "Mike"})print record
③ 如何給mongodb管理員許可權
1.用戶許可權說明
A.MongoDB是沒有默認管理員賬號,所以要先添加管理員賬號,再開啟許可權認證。
B.切換到admin資料庫,添加的賬號才是管理員賬號。
C.用戶只能在創建用戶對應的資料庫中完成認證,包括管理員賬號。
D.管理員可以管理所有資料庫,但是不能直接管理其他資料庫,要先在admin資料庫認證後才可以。
2.MongoDB資料庫角色
A.資料庫用戶角色:read、readWrite;
B.資料庫管理角色:dbAdmin、dbOwner、userAdmin;
C.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
D.備份恢復角色:backup、restore;
E.所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
F.超級用戶角色:root
角色說明:
Read:允許用戶讀取指定資料庫
readWrite:允許用戶讀寫指定資料庫
dbAdmin:允許用戶在指定資料庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定資料庫里創建、刪除和管理用戶
clusterAdmin:只在admin資料庫中可用,賦予用戶所有分片和復制集相關函數的管理許可權。
readAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀許可權
readWriteAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀寫許可權
userAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的userAdmin許可權
dbAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的dbAdmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
3.添加管理員賬號及完成認證
db.createUser({user:』root』,pwd:』zuchezaixian』,roles:[{role:』root』,db:』admin』}]})
註:所有資料庫下的用戶都在admin的users集合中可以查詢到:db.system.users.find()
配置文件指定啟用身份認證,重啟MongoDB服務。
重啟後執行show dbs會提示未認證,我們需要切換到admin資料庫下完成管理員賬號認證:
完成認證後,就可以成功執行show dbs了。
4.Spring配置用戶認證
mongodb.properties中指定管理員賬號及對應的資料庫名。
在spring-data-mongodb 1.7版本後需要在mongo-client
中設置credentials屬性來指定管理員信息,credentials的配置形式是:「用戶名:密碼@默認資料庫」,如:credentials="${mongo.user}:${mongo.pwd}@${mongo.defaultDbName}"
④ mongodb創建的資料庫默認用戶名密碼多少
方法如下: 創建資料庫 use tt 這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令: db.usr.insert({'name':'tompig'}); db.usr.insert({'name':'tompig1','id':1});
⑤ mongodb3.0沒有admin資料庫了,怎麼添加超級管理員
修改 /etc/mongod.conf 文件。mongoDB默認情況下任何客戶端都可以連接27017埠,且沒有認證,默認情況下沒有管理員帳戶。通過修改這個配置文件可以更改為登陸時進行許可權認證。
mongoDB中如果想要給某個資料庫創建一個用戶,需要首先進入該資料庫,然後使用addUser命令。在這里也可以將用戶設置為只讀(db.addUser("jack","jack",true),第三個參數表示是否時「只讀用戶」)。
要使用超級管理員,需要先連接admin資料庫並登陸管理員帳戶,然後連接其他資料庫就可以行使管理員許可權。
用戶信息保存及認證過程
類似Mysql將系統用戶信息保存在mysql.user表。MongoDB也將系統用戶的username、pwd保存在admin.system.users集合中。其中pwd = md5(username + 「:mongo:」 + real_password)。這本身並沒有什麼問題。username和:mongo:相當於對原密碼加了一個salt值,即使攻擊者獲取了資料庫中保存的md5 hash,也沒法簡單的從彩虹表中查出原始密碼。
許可權管理常用命令
1. #進入資料庫admin
use admin
2. #增加或修改用戶密碼
db.addUser('name','pwd')
3. #查看用戶列表
db.system.users.find()
4. #用戶認證
db.auth('name','pwd')
這一個返回1就認證成功了,只有認證成功才能對資料庫進行操作
5. #刪除用戶
db.removeUser('name')
6. #查看所有用戶
show users
7. #查看所有資料庫
show dbs
8. #查看所有的collection
show collections
9. #查看各collection的狀態
db.printCollectionStats()
10. #查看主從復制狀態
db.printReplicationInfo()
⑥ mongodb怎麼查密碼復雜度策略
咨詢記錄 · 回答於2021-10-27
⑦ mongodb spring用戶名密碼怎麼配置
方法如下:
創建資料庫
use
tt
這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});
隨便整了2個表,這個無所謂的,反...
⑧ 如何建立一個含有用戶名和密碼的mongodb的資料庫
方法如下:
創建資料庫
use tt
這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});
隨便整了2個表,這個無所謂的,反正要導入表的話就刪除掉這2個就可以了,目前只是想讓資料庫保持住.
然後使用命令查看是否有保存tt這個資料庫:
show dbs
3.配置用戶
use tt
db.addUser('mongodb','123456');
mongodb是用戶名,123456是密碼.
好了,這樣一個資料庫和對這個資料庫配置用戶就完成了.
mongodb常用命令:
1、Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
2、切換/創建資料庫
use yourDB; 當創建一個集合(table)的時候會自動創建當前資料庫
3、查詢所有資料庫
show dbs;
4、刪除當前使用資料庫
db.dropDatabase();
5、從指定主機上克隆資料庫
db.cloneDatabase(「127.0.0.1」); 將指定機器上的資料庫的數據克隆到當前資料庫
6、從指定的機器上復制指定資料庫數據到某個資料庫
db.Database("mydb", "temp", "127.0.0.1");將本機的mydb的數據復制到temp資料庫中
7、修復當前資料庫
db.repairDatabase();
8、查看當前使用的資料庫
db.getName();
db; db和getName方法是一樣的效果,都可以查詢當前使用的資料庫
9、顯示當前db狀態
db.stats();
10、當前db版本
db.version();
11、查看當前db的鏈接機器地址
db.getMongo();
Collection聚集集合
1、創建一個聚集集合(table)
db.createCollection(「collName」, {size: 20, capped: 5, max: 100});
2、得到指定名稱的聚集集合(table)
db.getCollection("account");
3、得到當前db的所有聚集集合
db.getCollectionNames();
4、顯示當前db所有聚集索引的狀態
db.printCollectionStats();
用戶相關
1、添加一個用戶
db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用戶、設置密碼、是否只讀
2、資料庫認證、安全模式
db.auth("userName", "123123");
3、顯示當前所有用戶
show users;
4、刪除用戶
db.removeUser("userName");
其他
1、查詢之前的錯誤信息
db.getPrevError();
2、清除錯誤記錄
db.resetError();
⑨ linux怎麼修改mongodb的用戶名和密碼
不知道你用什麼語言連接mongodb,以下是用mongo的shell打開資料庫:#創建一個庫:
use mytest
#添加一個用戶account,pwd
db.addUser("wangming","1234")
#查看當前庫中的用戶
db.system.users.find()
#連接時候通過auth命令進行連接(account,pwd)
db.auth("wangming","1234")
如果是用pymongo連接mongo,如下
#連接mongodb服務
con = MongoClient(host,port)
#選擇資料庫
db = con[dbname]
#用用戶名登陸
db.authenticate(account, pwd)
mongodb還是挺好用的,祝你快速上手。
⑩ mongodb在java中怎麼做修改操作
java 操作mongodb插入、讀取、修改以及刪除基礎
本文主要講述如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作。文章內容如下:第一步:安裝MongoDB無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。第二步:啟動MongoDB伺服器這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),並啟動MongoDB伺服器。在默認的情況下伺服器將啟動埠27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。第三步:啟動MongoDB shell指令你可以通過運行mongo.exe文件來啟動MongoBD shell。第四步:利用MongoDB創建資料庫利用MongoDB在MongoDB shell中輸入以下內容建立一個名為「company」的資料庫。use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。使用下面的命令幫你查看可用的資料庫,它會顯示「company」尚未被創建。show dbs; 第五步:在MongoDB中保存數據使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。employee = {name : "A", no : 1} db.employees.save(employee) 通過使用下面的命令來查看collection里的數據。db.users.find(); 如何使用Java操作MongoDB?下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } } 結果如下:{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2} The Search Query has Executed! 小結:隨著互聯網Web2.0網站的興起,非關系型的資料庫現在成了一個極其熱門的新領域,非關系資料庫產品的發展也非常迅速。本文淺顯的談及了如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作的問題。如果您是這方面的專家不妨與我們分享下。本文為CSDN編譯整理,未經允許不得轉載。