python根据时间生成mongodb的ObjectId的方法


Posted in Python onMarch 13, 2015

本文实例讲述了python根据时间生成mongodb的ObjectId的方法。分享给大家供大家参考。具体分析如下:

mongodb的_id为ObjectId类型,ObjectId内是包含时间戳信息的,这样我们在保存数据的时候就不需要再单独记录一个添加时间了,如果需要按照时间查询,我们可以先把时间变化成可查询的ObjectId,再通过_id字段查询,由于mongodb的_id是主键,查询效率非常高。下面的函数给出了如何把时间换算成ObjectId,同时该函数还可以指定时间的偏移量,比如多少天前的时间。

def object_id_from_datetime(from_datetime=None,span_days=0,span_hours=0,span_minutes=0,span_seconds=0,span_weeks=0):

    '''根据时间手动生成一个objectid,此id不作为存储使用'''

    if not from_datetime:

        from_datetime = datetime.datetime.now()

    from_datetime = from_datetime + datetime.timedelta(days=span_days,hours=span_hours,minutes=span_minutes,weeks=span_weeks)

    return ObjectId.from_datetime(generation_time=from_datetime)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现把数字转换成中文
Jun 29 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
python模拟表单提交登录图书馆
Apr 27 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
python顺序执行多个py文件的方法
Jun 29 Python
Python yield的用法实例分析
Mar 06 Python
Python OpenCV实现测量图片物体宽度
May 27 Python
Python如何获取文件指定行的内容
May 27 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 Python
python实现根据窗口标题调用窗口的方法
Mar 13 #Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 #Python
Python实现windows下模拟按键和鼠标点击的方法
Mar 13 #Python
Python实现测试磁盘性能的方法
Mar 12 #Python
Python解析xml中dom元素的方法
Mar 12 #Python
Python实现Tab自动补全和历史命令管理的方法
Mar 12 #Python
Python实现将n个点均匀地分布在球面上的方法
Mar 12 #Python
You might like
php5中类的学习
2008/03/28 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
PHP实现文件下载详解
2014/11/27 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
jQuery 工具函数学习资料
2010/04/29 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
Python返回数组/List长度的实例
2018/06/23 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
甜品店的创业计划书范文
2014/01/02 职场文书
幼儿园数学教学反思
2014/02/02 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
车贷收入证明范本
2014/09/14 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
谢师宴答谢词
2015/01/05 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
vue中 this.$set的使用详解
2021/11/17 Vue.js
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis