mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...
另外附上mongodb eclipse插件地址:?http://www.jumperz.net/update/ import java.net.UnknownHostException;import com.mongodb.DB;import com.mongodb.DBCol
1.首先操作mongodb最基本命令::
show databases; ? ? ? ? ? ? ---------------------顯示全部數據庫
use 數據庫名; ? ? ? ?--------------------切換到指定數據庫
show collections; ?--------------------顯示該數據庫下的全部表
之后就可以執行相應增刪改查語句了!
2.
查詢: ?logger ?是我自己的數據庫表名
db.logger.find() ?查詢全部,數據過多的話繼續執行 it 就可以繼續顯示下一頁數據,重復再重復
db.logger.count() ? ? 查詢數量
db.logger.find({"device":"mobile"}) ? ? 查詢device是mobile的數據
指定條件下查詢:
db.logger.find(
{"device":"mobile","datetime":{"$gt":1384185600000,"$lt":1384271999000}}
);
查詢指定device是mobile,時間在1384185600000到1384271999000之間的logger,這里的數字是時間類型對應的毫秒數,1384185600000對應“2013-11-12 00:00:00”,1384271999000對應2013-11-12 23:59:59,也就是11月12號這一天
db.logger.find(
{"device":"mobile","datetime":{"$gt":1384185600000,"$lt":1384271999000}}
).count();
后面加上count,查詢上面集合的數量
去重查詢:
db.runCommand(
{"distinct":"數據庫表名","key":"要去重的屬性名","query":{“查詢語句”}}
);
返回的是去重的集合,在query后面的查詢語句中放入自己想加入的條件即可,就像上面指定條件下查詢:的find()里面指定的查詢語句{"device":"mobile","datetime":{"$gt":1384185600000,"$lt":1384271999000}}
db.runCommand(
{"distinct":"數據庫表名","key":"要去重的屬性名","query":{“查詢語句”}}
).values.length; 后面加上 .values.length,返回去重查詢后的數量
3.克隆遠程數據庫:
db.copyDatabase("目標數據庫","我自己的數據庫名","ip地址:端口號")
就像這樣
db.copyDatabase("web_logger","MyDB","110.110.10.110:27012")
執行后就可以把ip是110.110.10.110的遠程數據庫web_logger拉到本地mongodb數據庫內上一篇我們講了MongoDB 的命令入門初探,本篇blog將基于上一篇blog所建立的數據庫和表完成一個簡單的Java MongoDB CRUD Example,利用Java連接MongoDB數據庫,并
對應的java語句:
連接mongodb數據庫:
public DBCollection getCollection(String tableName) {
DBCollection collection = null;
try {
Mongo mongo = new Mongo("XXXX.XXX.XX.XXX",27017);
DB db = mongo.getDB("web_logger");
collection = db.getCollection(tableName);
System.out.println("已連接"+tableName+"表");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return collection;
}
傳入表名,返回該表的連接!
查詢指定條件的數據:
DBObject query = new BasicDBObject();
query.put("device","web");
query.put("city","杭州");
query.put("datetime", new BasicDBObject("$gte",1384185600000).append("$lte",1384271999000));
DBCollection collection = 連接自己定義的數據庫表.
之后幾種情況的查詢
1.查詢數量
long num = collection.count(query);
2.查詢去重數量
long num = collection.distinct("ip",query).size();
3.查詢集合
List list = new ArrayList();
DBCurson curson = collection.find(query);
Gson gson = new Gson();
while(curson.hasNext()){
DBObject element = curson.next();
Logger logger =?gson.fromJson(element.toString(), Logger.class);
list.add(logger);
}
return list;
4.查詢去重集合:
List list = collection.distinct("ip",query);
OVER!簡單地用到了一些,暫時記著方便以后回憶
對了,貼上用到的jar包
org.mongodb
mongo-java-driver
2.11.3
com.google.code.gson
gson
2.2.4
org.springframework.data
spring-data-mongodb
1.0.0.M5
1.使用eclipse創建一個maven項目開操作mongodb數據庫。pom.xml文件如下:
總結
以上是生活随笔為你收集整理的mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 查看共享磁盘_如何可视化地查
- 下一篇: vue 父组件获取接口值传到子组件_vu