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去除空格和换行符的实现方法(推荐)
Jan 04 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
对python requests的content和text方法的区别详解
Oct 11 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 Python
python sorted函数原理解析及练习
Feb 10 Python
Python远程linux执行命令实现
Nov 11 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
python控制台打印log输出重复的解决方法
May 14 Python
Django集成富文本编辑器summernote的实现步骤
May 31 Python
python全面解析接口返回数据
Feb 12 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
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP比你想象的好得多
2014/11/27 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
javascript 闭包详解
2015/07/02 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
python实现横向拼接图片
2020/03/23 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
应届生.NET方向面试题
2015/05/23 面试题
大学四年个人的自我评价
2014/02/26 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
神龙架导游词
2015/02/11 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
师德承诺书2015
2015/04/28 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏