mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句
http://blog.csdn.net/qkxh320/article/details/16115671
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数据库内
对应的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<Logger> list = new ArrayList<Logger>();
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);
mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句的更多相关文章
- Day4 数据库的建立||数据库对外查询||使用命令行来操作数据库
###数据库的创建 建立一个项目 先进行测试,测试新项目是否可以成功运行 创建一个PersonContrary包,并建立一个Person类实现BaseColumns借口,在此类中添加所有的表的列名,并 ...
- Git 使用篇二:搭建远程服务器
一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发. 这里以Centos云服务器为例: 第一步 如果自己的服务器没有git ...
- Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用
//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; im ...
- SQL SERVER 2008远程数据库移植到本地的方法
https://blog.csdn.net/wuzhanwen/article/details/77449229 Winform程序或网站后台的SQL SERVER 2008放置在远程服务器上,用Mi ...
- plsql本机不安装数据库连接远程数据库
用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端 如何达到不安装oracle客户端,又能使用PL/SQL工具? 1. oracle官网提供了i ...
- linux下的远程数据库(Oracle)中文乱码问题
适用于本地客户端(PLSQL Developer )访问远程数据库时,查询结果出现的乱码,当在远程数据库上查询结果时显示正常. 1.查询远程数据库的编码: select userenv('langua ...
- MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下 MySQL数据库insert和update语句引:用于操作数 ...
- oracle 多字段去重查询
oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.F ...
- 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
转自:http://www.jb51.net/article/39199.htm 本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍, ...
随机推荐
- xcode6 自定义UITabbarController
-(void)initTabBarView{ if (tabBarController && [kAPPDELEGATE.navigationController.viewContro ...
- Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符: %@:字符串占位符 %d:整型 %ld:长整型 %f:浮点型 %c:char类型 %%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的 ...
- 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
1.Java的安全体系架构 1.1 Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.sec ...
- cocos2dx jsb 在IOS与安卓下的一些不同之处
cocos2dx版本 2.1.4 1:字体大小 cocosbuilder publish后应该注意IOS和安卓目录下的字体文件的规格是否齐全: 2:cc.LabelTTF 在ios下,cc.Label ...
- vector中的resize与 reserve
void reserve (size_type n); reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化.reserve 的参数n是推荐预 ...
- Java 实现顺序查找
package search; import java.util.Scanner; /*通常把查找过程中对关键字的平均比较次数,也叫平均查找长度(ASL)作为衡量一个查找算法效率优劣的标准: * AS ...
- String sql = "update web_admin set adminname=? ,password=? where id=?;怎么给“?” 传值?
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES ...
- sqlserver2008中如何用右键可视化的设置外键
右键->设计 然后打表设计界面打开了然后右键点你要设置与其它表关联的列然后点关系,选择外键表与列然后点保存,就这样
- 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection
代码如下: final Connection conn=pool.remove(0); //利用动态代理改造close方法 Connection proxy= (Connection) Proxy.n ...
- 20151224jquery学习笔记---cookie插件
hello,祝自己平安夜快乐. Cookie 是网站用来在客户端保存识别用户的一种小文件.一般来用库可以保存用户登录信息.购物数据信息等一系列微小信息.一. 使用 cookie 插件官方网站: htt ...