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语句的更多相关文章

  1. Day4 数据库的建立||数据库对外查询||使用命令行来操作数据库

    ###数据库的创建 建立一个项目 先进行测试,测试新项目是否可以成功运行 创建一个PersonContrary包,并建立一个Person类实现BaseColumns借口,在此类中添加所有的表的列名,并 ...

  2. Git 使用篇二:搭建远程服务器

    一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发. 这里以Centos云服务器为例: 第一步 如果自己的服务器没有git ...

  3. Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

    //方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; im ...

  4. SQL SERVER 2008远程数据库移植到本地的方法

    https://blog.csdn.net/wuzhanwen/article/details/77449229 Winform程序或网站后台的SQL SERVER 2008放置在远程服务器上,用Mi ...

  5. plsql本机不安装数据库连接远程数据库

    用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端   如何达到不安装oracle客户端,又能使用PL/SQL工具?     1. oracle官网提供了i ...

  6. linux下的远程数据库(Oracle)中文乱码问题

    适用于本地客户端(PLSQL Developer )访问远程数据库时,查询结果出现的乱码,当在远程数据库上查询结果时显示正常. 1.查询远程数据库的编码: select userenv('langua ...

  7. MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下   MySQL数据库insert和update语句引:用于操作数 ...

  8. oracle 多字段去重查询

      oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.F ...

  9. 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    转自:http://www.jb51.net/article/39199.htm 本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍, ...

随机推荐

  1. C++中的explicitkeyword

    在C++程序中非常少有人去使用explicitkeyword,不可否认,在平时的实践中确实非常少能用的上.再说C++的功能强大,往往一个问题能够利用好几种C++特性去解决.但略微留心一下就会发现现有的 ...

  2. java class 文件解析

    参考下面两个文章对一个class文件进行解析: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4.6 htt ...

  3. 文件处理-Directory类 (C#)

    转http://skybirdzw.blog.163.com/blog/static/7257062620099751329403/ 文件处理-Directory类 (C#) Directory.Cr ...

  4. iOS 跳转至 指定 StoryBoard 中 指定的 Scene

    UIStoryboard *stryBoard=[UIStoryboard storyboardWithName:@"second" bundle:nil]; UIViewCont ...

  5. wins和linux 系统不同编码格式导致的.py执行问题: bad interpreter: No such or file directory

    我在win7上用IDLE编写了一个python文件(MyTopo.py),但是用putty传到VM中的ubuntu系统中,用 ./MyTopo方式执行. 显示: /bin/sh^M: bad inte ...

  6. Clean Code(二):函数

    笔记2:函数1.短小.还要更短小    每个函数都一目了然,每个函数灰依序把你带到下一个函数    if.else.while语句等,其中的代码块应该只有一行,块内调用的函数名称应该较具有说明性2.只 ...

  7. hibernate篇章四-- Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置

    我们在搭建环境的时候,在配置文件中有一个属性标签为: <property name="hibernate.hbm2ddl.auto">     </propert ...

  8. Unity3D 之UGUI 面板

    UGUI中使用面板,可以对一组控件分为一个组. 一个面板里面可以添加一些控件,就如同Html中的<div>一样.

  9. Java联网技术之一TCP

    最近突然对java网络编程编程这一块非常感兴趣,于是找了很多资料,一点点的尝试,下面是自己的一点小见解,不喜勿喷,欢迎指正. 首先说说客户端和服务器端吧, 如果是网页的话,客户端通过网页的链接对服务器 ...

  10. sql: 生日三个月内有效

    DECLARE @birthday datetime,@stat datetime,@end datetime,@statbirthday datetime,@endbirthday datetime ...