MongoDB基于时间戳的导数操作

上班有个需求,协助提取某数据系统中cashloanDb

涉及MongoDB集合: cardBill(时间段 6.1-8.28) , cardReport (时间段 2.1-8.28)
如果不支持根据时间提取,可提取全量数据。
使用mongo客户端命令进入数据库:
jsfkrs0:PRIMARY> show dbs;
2018-09-04T17:35:57.692+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
} :br/>[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/mongo.js:62:1br/>[email protected]/mongo/shell/utils.js:769:19
[email protected]/mongo/shell/utils.js:659:15
br/>@(shellhelp2):1:1
这个是因为开启conf文件中的auth功能,设置用户和密码之后,再执行show dbs就会报错,下面我们用db.auth()认证之后就可以执行了:
jsfkrs0:PRIMARY> use admin
switched to db admin
jsfkrs0:PRIMARY> db.auth(‘mangoadmin‘,‘password‘)
1
jsfkrs0:PRIMARY> show dbs;
admin 0.000GB
cashloanDb 96.287GB
fuf_mgdb 0.765GB
local 1.280GB

切换至我们要操作的db中
jsfkrs0:PRIMARY> use cashloanDb
switched to db cashloanDb

看一下这两个集合的全量数据有多少
jsfkrs0:PRIMARY> db.cardBill.count();
247126
jsfkrs0:PRIMARY> db.cardReport.count();
249128

先看一下这个表里面有没有时间戳我们取一条数据来看,有的话,我们可以基于这个时间戳来进行导出工作;
jsfkrs0:PRIMARY> db.cardBill.findOne();
{
"_id" : ObjectId("59e180110cxxxxxx"),
"timestamp" : NumberLong("1507950609625"),
"taskId" : "xxxxxx-b08d-11e7-bf17-xxxxx",
"bill" : "[{\"balance\":47000.00,\"deposits\":[],\"bills\":[{\"installments\":[],\"bill_id\":\"d81f1e60-a02d-11e7-a63a-00163e0dfac7\",\"bill_type\":\"DONE\",\"bank_name\":\"中信银行\",\"bill_month\":\"2017-04\",\"bill_date\":\"2017-04-14\",\"payment_due

这个时间戳有13位,精确到了毫秒,我们在导出的时候需要换算成Unix时间戳,并且也精确到毫秒才可以。
http://tool.chinaz.com/Tools/unixtime.aspx

正常换算出来的只到秒位,只有10位。可以直接在换算出的Unix时间戳后面加000,或者换算的时候直接精确到毫秒,下来我们就可以用MangoDB自带的导出工具进行导出;
mongoexport -d cashloanDb -c cardBill-uadmin -ppassword --authenticationDatabase "admin" -q ‘{"timestamp":{$gte:NumberLong("1517414400000"),$lte:NumberLong("1535472000000")}}‘ -o cardBill.json

原文地址:http://blog.51cto.com/yangjunfeng/2170461

时间: 2024-11-04 10:36:32

MongoDB基于时间戳的导数操作的相关文章

MongoDB(索引及C#如何操作MongoDB)(转载)

MongoDB(索引及C如何操作MongoDB) 索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureIndex({"username":1, "age":-1})//创建复合索引 数字1表示username键的索引按升序存储,-1表示age键的索引按照降序方式存储. // 该索引被创建后,基于username和age的查询将会用到该索引,或者是基于username的查询也会

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

dotnet core 使用 MongoDB 进行高性能Nosql数据库操作

好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好景象. 不在绑定Windows, 相信众位dotneter的春天就要来了 废话不多说, 早就对dotnet core 跃跃欲试, 手头一个新项目也正计划使用dotnet core来开发. 正好自己做做调研, 就与大家分享一点使用MongoDB的经验. 首先, 安装VS Code, 并安装C#插件,

Mongodb数据库命令端常用操作

查询操作 Mongodb-SpringMvc下Query数据库操作SQL http://blog.csdn.net/xiaohulunb/article/details/27828381 1.查询所有 > db.foo.find() { "_id" : ObjectId("5389aa1df06b88aaa313746a"), "name" : "yiwa", "age" : 25, "us

mongodb 学习笔记 02 -- CURD操作

mongodb 学习笔记 02 – CURD操作 CURD代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作 创建库 直接 use 库名 然后创建collection 就可以创建库 创建collecion db.createCollection("collectionName") 隐式创建collection db.collectionName.insert({xxxxxx}) 删除collection db.collectionName.dro

JS基于时间戳写的浏览访问人数

Title:JS基于时间戳写的浏览访问人数  --2013-12-23 14:07 <script language="JavaScript"> var timestamp,timetmp,rand; rand = Math.floor(Math.random()*10); //随机数 timestamp = new Date().getTime().toString(); //时间戳 timetmp = (parseInt(timestamp)/1000/60).toSt

基于 php-redis 的redis操作

基于 php-redis 的redis操作 林涛 发表于:2016-5-13 12:12 分类:PHP 标签:php,php-redis,redis 203次 redis的操作很多的,下面的例子都是基于php-redis这个扩展的.这么多很难记得住,转到这里留作备忘: 1,connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例:<?php$redis = new redis();$resu

【转载】8天学通MongoDB——第四天 索引操作

这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵. 从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中就包括我们今天所说的“索引查找”,如果大家对sqlserver比较了解 的话,相信索引查找能给我们带来什么样的性能提升吧. 我们首先插

MongDB基础学习(七)—— 【MongoDB for Java】Java操作MongoDB

[MongoDB for Java]Java操作MongoDB 开发的产品为了融资,不停得改版,从第一版到现在最新版本,最后发现公司发展方向都变了,有最初电子商务改成VR内容提供者(没办法,要别人钱,就得按照别人的规划的战略走).本来本章节会放到后面再做讲解,无奈,部门需要做一次培训任务,我就想到拿Java操作MongoDB作为培训内容,开发环境和依赖jar如下: (1)开发环境: System:Windows IDE:eclipse Database:mongoDB2.6 Maven:apac