導航:首頁 > 編程語言 > javamongodb排序查詢

javamongodb排序查詢

發布時間:2023-02-13 03:41:05

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

public class MongoDBUtil {// 定義默認配置,1、IP地址 2、埠號 3、用戶名 4、密碼 5、配置文件位置名 6、資料庫名private static final String MONGODB_ADDRESS = "127.0.0.1";private static final int MONGODB_PORT = 27017;private static final String MONGODB_USERNAME = "root";private static final String MONGODB_PASSword = "";private static final String MONGODB_RESOURCE_FILE = "mongodb.cfg.properties";private static final String MONGODB_DBNAME = "test";private static final String MONGODB_COLLECTIONNAME = "test";// 定義靜態變數,1、Mongo對象(代表資料庫連接)2、DB對象(代表資料庫)3、集合名4、資料庫相關配置映射集合5、已獲取的資料庫連接private static Mongo mongo;private static DB db;private static DBCollection collection;private static Map<string, string=""> cfgMap = new HashMap<string, string="">();private static Hashtable<string, db=""> mongoDBs = new Hashtable<string, db="">();/*** 初始化Mongo的資料庫*/static {init();}/*** 獲取配置文件中配置的DB對象*/public static DB getDB() {return db;}/*** 獲取配置文件中配置的DBCollection對象*/public static DBCollection getDBCollection() {return collection;}/*** 根據資料庫名稱,得到資料庫 如果不存在,則創建一個該名稱的資料庫,並設置用戶名和密碼為配置文件中的參數值** @param dbName* @return DB*/@SuppressWarnings("deprecation")public static DB getDBByName(String dbName) {DB db = mongo.getDB(dbName);if (!mongoDBs.contains(db)) {System.out.println("add");db.addUser(cfgMap.get("mongo.db.username"),cfgMap.get("mongo.db.password").toCharArray());mongoDBs.put(dbName, db);}return db;}// ————————————————————————————————————初始化過程————————————————————————————————————/*** 獲取配置文件mongedb.cfg.properties的文件對象*/public static File getConfigFile() {String path = MongoDBUtil.class.getResource("/").getPath();String fileName = path + MONGODB_RESOURCE_FILE;System.out.println(fileName);File file = new File(fileName);if (file.exists()) {return file;}return null;}/*** 通過mongedb.cfg.properties配置文件初始化配置映射集合,如果沒有編寫配置文件,則載入程序指定的默認配置*/@SuppressWarnings("unchecked")private static void initCfgMap() {File file = getConfigFile();if (file != null) {Properties p = new Properties();try {p.load(new FileInputStream(file));for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) {String key = (String) enu.nextElement();String value = (String) p.getProperty(key);cfgMap.put(key, value);}} catch (IOException e) {System.out.println("載入Mongo配置文件失敗!");e.printStackTrace();}} else { // 如果沒有編寫配置文件,則載入默認配置cfgMap.put("mongo.db.address", MONGODB_ADDRESS);cfgMap.put("mongo.db.port", String.valueOf(MONGODB_PORT));cfgMap.put("mongo.db.username", MONGODB_USERNAME);cfgMap.put("mongo.db.password", MONGODB_PASSWORD);cfgMap.put("mongo.db.dbname", MONGODB_DBNAME);cfgMap.put("mongo.db.collectionname", MONGODB_COLLECTIONNAME);}}/*** 初始化Mongo的資料庫(將db指向相應對象引用,將collection指向相應對象引用,通過mongoDBs記錄現有資料庫對象)*/@SuppressWarnings("deprecation")private static void init() {initCfgMap();try {String address = cfgMap.get("mongo.db.address");int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString());String dbName = cfgMap.get("mongo.db.dbname");String username = cfgMap.get("mongo.db.username");String password = cfgMap.get("mongo.db.password");String collectionName = cfgMap.get("mongo.db.collectionname");mongo = new Mongo(address, port);if (dbName != null && !"".equals(dbName)) {db = mongo.getDB(dbName);if (username != null && !"".equals(username)) {db.addUser(username, password.toCharArray());if (collectionName != null && !"".equals(collectionName)) {collection = db.getCollection(collectionName);}}mongoDBs.put(dbName, db);}} catch (Exception e) {e.printStackTrace();}}}

❷ java來操作mongodb,排序和limit是在客戶端做的嗎

distinct().sort().limit(10)

使用limit命令,至於前後要看你按照什麼排序了,

limit會按照排序返回指定條數給你

閱讀全文

與javamongodb排序查詢相關的資料

熱點內容
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567
文件夾正裝 瀏覽:279
剛復制的文件找不到怎麼辦 瀏覽:724
試運行適用於哪些體系文件 瀏覽:987
ghost文件復制很慢 瀏覽:967
傑德原車導航升級 瀏覽:240
編程dest是什麼意思 瀏覽:935
linux埠鏡像 瀏覽:820
iphone5屏幕清塵 瀏覽:157
機頂盒密碼怎麼改 瀏覽:672
w7系統下載32位教程 瀏覽:618
pcb文件包括哪些內容 瀏覽:598
g00文件 瀏覽:607
用bat程序刪除程序 瀏覽:516

友情鏈接