广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB中怎么将时间戳转为日期格式
  • 738
分享到

MongoDB中怎么将时间戳转为日期格式

2024-04-02 19:04:59 738人浏览 八月长安
摘要

这篇文章给大家介绍mongoDB中怎么将时间戳转为日期格式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB模糊查询方法示例:模糊查询:tname包含某个关键字测试'

这篇文章给大家介绍mongoDB中怎么将时间戳转为日期格式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

MongoDB模糊查询方法示例:

模糊查询:tname包含某个关键字测试'

cd /opt/soft/monGodb/bin
./mongo --host 192.168.0.1 --port 17017 test
db.test_info.find({"tname": {$regex: '测试', $options:'i'}}) 
db.test_info.find({"tname": {$regex:/测试.*/i}})

需要找出所有时间戳的数据记录,因为时间戳多是以数字开头,最近几年的都是14XXX的,所以正则表达式以14开头搜索,实现方式如下:

mongos> use pos
switched to db pos
mongos> 
db.paymentinfo.find({"paymentTime": {$regex: '14', $options:'i'}}).count();
mongos> db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}}).count();
1995
mongos>

查询到有1995条记录,蛮多的,需要处理记录数不少。

建立遍历函数:

db.cms_Content.find({"userId":"444333f107624489bae28140d1970bbc"}).forEach(function(x) {
 if(x.title&&x.fileName){
 print(x.contentId);
db.cms_Content.update({"contentId":x.contentId},{"$set":{"title":x.fileName}});
 }
})

PS:证明不能用,效果一般

3,首先删除一部分TXNTYPE为1的胀数据

删除查询出来的集合数据

db.paymentinfo.remove( {"txnType": {$regex: '1', $options:'i'}}, 300 );

删除所以查询出来的记录:

db.paymentinfo.remove( {"txnType": {$regex: '1', $options:'i'}});

删除paymentTime=0的数据记录

db.paymentinfo.remove( { paymentTime : "0" } )

4,遗留问题需要解决

for (var i = 0, len = 3; i < len; i++) {var child=dschilds[i]; var id=child._id; printJSON((id)); var paymentTime=child.paymentTime; printjson(paymentTime)}  批量修改校验错误日期数据的期待解决的问题

 db.paymentinfo.update({"_id": ObjectId("55d56fdbe4b0c1f89b5356ae")},{$set:{"paymentTime" : "14400511608049527"}},true);
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}});
 for (var i = 0, len = 1; i < len; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 printjson(id);
 var paymentTime=child.paymentTime; 
 var datestr=paymentTime 
 #问题在这里,这个日期是时间戳,比如1440560826340的模式,请问下,在mongodb shell里面如何将时间戳变成字符串'2015-12-15 12:34:16'这样的日期字符串呢?
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }
 db.paymentinfo.find({"_id":ObjectId("55dd36dc45ce9e75b91eb340")}).forEach(function (a) { a["paymentTime"] = new Date(parseInt(paymentTime) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); printjson(a) });

看到这里也不能解决我的问题,所以思路停止了,toLocaleString()获得的是GST的日期格式串,不是我需要的yyyy-mm-dd hh:mm:ss结构的日期格式数

5,找到突破口,使用JAVASCRIPT

mongodb官网已经报错提示有说明,mongodb shell里面是可以调用javascript脚本,这么说来,直接在窗口里面写js脚本来实现就ok了,然后准备拿一条数据来验证是否正确,结果成功了,验证脚本如下:  – 单独一条集合数据中,将时间戳变成日期字符串:

db.paymentinfo.find({"_id":ObjectId("55d56cbbe4b0c1f89b5356a4")}).forEach(function (a) { 
 #这个函数是在月、日、时分秒的个位数字前面补0操作的
 function tran_val(val){
 if(parseInt(val)<10){
 val="0" +val;
 }
 return val;
 }
 # 这里是paymentTime为时间戳
 var datenew = new Date(parseInt(paymentTime)); 
 # 获取年月日
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 # 获取时分秒
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds()); 
 # 组装成标准的日期格式yyyy-mm-dd hh:mm:ss 
 var datastr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 a["paymentTime"]=datastr
 print(paymentTime); 
 printjson(a) }
 );

上面的例子表明直接用js脚本可以实现时间戳到日期格式转变,那么下面就开始for循环批量修改:

 db.paymentinfo.update({"_id": ObjectId("55d56fdbe4b0c1f89b5356ae")},{$set:{"paymentTime" : "14400511608049527"}},true);
 # 使用遍历数组的方式来操作144开头的时间戳
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length ; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 var paymentTime=child.paymentTime;
 print(paymentTime);
 function tran_val(val){
  if(parseInt(val)<10){
  val="0" +val;
  }
  return val;
 }
 var datenew = new Date(parseInt(paymentTime)); 
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds());
 var datestr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 # 这里开始进行修改操作
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }
 # 使用遍历数组的方式来操作145开头的时间戳
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '145', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length ; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 var paymentTime=child.paymentTime;
 print(paymentTime);
 function tran_val(val){
  if(parseInt(val)<10){
  val="0" +val;
  }
  return val;
 }
 var datenew = new Date(parseInt(paymentTime)); 
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds());
 var datestr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }

6,碰到新的问题,统一日期格式,将斜杠变成横杠

–批量修改日期 斜杠变成横杠

 var ds= db.paymentinfo.find({"paymentTime": {$regex: '/', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length; i++) {
 var child=dschilds[i]; 
 var id=child._id;
 var paymentTime=child.paymentTime;
 var paymentTime2=paymentTime.replace(/\//g,"-");
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :paymentTime2}},true);
 print(paymentTime);print(paymentTime2);
 db.paymentinfo.find({"_id": id});
 }
-- insert data
insert into t1 select 1,'a' from db1.t2;
call db1.proc_get_fints

关于MongoDB中怎么将时间戳转为日期格式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB中怎么将时间戳转为日期格式

本文链接: https://www.lsjlt.com/news/56099.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB中怎么将时间戳转为日期格式
    这篇文章给大家介绍MongoDB中怎么将时间戳转为日期格式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB模糊查询方法示例:模糊查询:tname包含某个关键字测试'...
    99+
    2022-10-18
  • PHP中怎么将时间戳转换为日期格式
    本篇内容主要讲解“PHP中怎么将时间戳转换为日期格式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中怎么将时间戳转换为日期格式”吧!一、什么是时间戳时间戳是指从1970年1月1日00:00...
    99+
    2023-07-05
  • 怎么用PHP将Unix时间戳转为日期时间格式
    今天小编给大家分享一下怎么用PHP将Unix时间戳转为日期时间格式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用date...
    99+
    2023-07-05
  • 怎么用php将日期格式转为Unix时间戳
    在Web开发中,处理日期是很常见的任务。PHP作为一门服务器端编程语言,提供了一些有用的函数来处理日期。其中最常用的是将一个日期字符串转换为Unix时间戳,这对于日期比较和排序操作非常有用。本文将介绍如何使用PHP将日期格式转换为Unix时...
    99+
    2023-05-14
    php php时间戳
  • php怎么将ymd格式的日期转为时间戳
    本文小编为大家详细介绍“php怎么将ymd格式的日期转为时间戳”,内容详细,步骤清晰,细节处理妥当,希望这篇“php怎么将ymd格式的日期转为时间戳”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、 什么是时间戳...
    99+
    2023-07-06
  • javascript怎么将时间戳转换为普通日期格式
    小编给大家分享一下javascript怎么将时间戳转换为普通日期格式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript把时间戳转换为普通日期格式的方法:1、使用Date toLocaleString方法;2...
    99+
    2023-06-14
  • javascript将时间戳转为日期格式的方法
    本篇内容主要讲解“javascript将时间戳转为日期格式的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript将时间戳转为日期格式的方法”吧...
    99+
    2022-10-19
  • php怎么将时间戳转为日期
    PHP时间戳是一种表示时间日期的方式,它是一个整数,表示自 Unix 纪元(格林威治时间1970年1月1日00:00:00 UTC)以来经过的秒数。在开发Web应用程序时,我们经常使用时间戳来记录事件和处理各种时间相关的操作。但是,将时间戳...
    99+
    2023-05-14
    php php时间戳
  • 如何用PHP将Unix时间戳转为日期时间格式
    Unix时间戳是指从1970年1月1日0时0分0秒起至当前时间的总秒数,它是Linux、Unix系统所采用的一种时间表示标准,也被广泛应用于Web开发中。在PHP中,我们可以把Unix时间戳转换为日期时间格式,以便更好地呈现时间信息。本文将...
    99+
    2023-05-14
    php php时间戳
  • php怎么用strtotime函数将日期格式转为时间戳
    日期格式转时间戳是在PHP编程中常常会用到的一个操作。在许多场合下,我们需要将日期格式转化为Unix时间戳,以便在程序中进行计算、比较和处理。在PHP中,我们可以利用strtotime函数将日期格式转化为时间戳(Unix时间戳)。在这篇文章...
    99+
    2023-05-14
  • 怎么将时间戳毫秒转化为PHP中的时间和日期格式
    这篇文章主要介绍“怎么将时间戳毫秒转化为PHP中的时间和日期格式”,在日常操作中,相信很多人在怎么将时间戳毫秒转化为PHP中的时间和日期格式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将时间戳毫秒转化为...
    99+
    2023-07-05
  • 如何用php将日期格式转为Unix时间戳
    这篇文章主要介绍“如何用php将日期格式转为Unix时间戳”,在日常操作中,相信很多人在如何用php将日期格式转为Unix时间戳问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php将日期格式转为Unix...
    99+
    2023-07-05
  • Mongodb 如何将时间戳转换为年月日日期
    目录MongoDB将时间戳转换为年月日日期MongoDB中的日期查询的坑Mongodb将时间戳转换为年月日日期 使用dateToString 方法进行转换 并且通过format指定转换日期格式 Integer u...
    99+
    2022-10-17
  • Mongodb如何将时间戳转换为年月日日期
    目录Mongodb将时间戳转换为年月日日期MongoDB中的日期查询的坑Mongodb将时间戳转换为年月日日期 使用dateToString 方法进行转换 并且通过format指定转...
    99+
    2022-11-13
    Mongodb时间戳 时间戳转换日期 时间戳转换年月日日期
  • 在PHP中如何将时间戳转化为日期和时间格式
    本篇内容介绍了“在PHP中如何将时间戳转化为日期和时间格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是时间戳时间戳是指自1970年1...
    99+
    2023-07-05
  • php怎么将时间戳转化为日期
    在编程中,经常需要使用到时间处理,而时间戳是一种常见的时间格式,它是指自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的秒数。然而,对于用户来说,时间戳并不直观,因此将时间戳转化为日期和时间更能满足用户需求。...
    99+
    2023-05-14
    php php时间戳 php日期时间
  • 怎么使用PHP将时间戳转成日期格式
    这篇文章主要介绍“怎么使用PHP将时间戳转成日期格式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用PHP将时间戳转成日期格式”文章能帮助大家解决问题。什么是时间戳?时间戳指的是从1970年1...
    99+
    2023-07-05
  • PHP怎么将Unix时间戳转换成日期格式
    这篇文章主要介绍了PHP怎么将Unix时间戳转换成日期格式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP怎么将Unix时间戳转换成日期格式文章都会有所收获,下面我们一起来看看吧。第一种方法是使用PHP中的...
    99+
    2023-07-05
  • php怎么将时间戳转为“年月日”格式
    在PHP中,我们经常需要计算和处理时间。时间戳是一个很有用的方法,可以将一个日期和时间转换为自1970年1月1日起的秒数。有时候,我们需要将时间戳转换为可读性更好的格式,比如年月日。本文将介绍如何在PHP中将时间戳转换为年月日格式。什么是时...
    99+
    2023-05-14
    php php时间戳
  • 怎么在PHP中将日期和时间转为时间戳
    本文小编为大家详细介绍“怎么在PHP中将日期和时间转为时间戳”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在PHP中将日期和时间转为时间戳”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用time函数获取当...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作